2007-10-06 13:15:30 +08:00
|
|
|
|
|
|
|
<html>
|
|
|
|
<head>
|
|
|
|
<title>
|
|
|
|
Demo page information
|
|
|
|
</title>
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
|
|
|
<h1>Demo page information</h1>
|
|
|
|
|
2019-10-24 07:42:47 +08:00
|
|
|
<p>Press "back" or <a href=".">click here</a> to return to the demo
|
2007-10-06 13:15:30 +08:00
|
|
|
page.</p>
|
|
|
|
|
|
|
|
<h2><a name="hints">Hints and Advice</a></h2>
|
|
|
|
|
|
|
|
<ul>
|
|
|
|
<li>The generated LLVM code will be easier to read if
|
|
|
|
you use stdio (e.g., printf) than iostreams (e.g., std::cout).</li>
|
|
|
|
|
2019-10-24 07:42:47 +08:00
|
|
|
<li>Unused inline functions and methods are not generated. Instead
|
2007-10-06 13:15:30 +08:00
|
|
|
of '<tt>class foo { void bar() {}};</tt>',
|
|
|
|
try writing '<tt>class foo { void bar(); }; void foo::bar() {}</tt>'.</li>
|
|
|
|
|
|
|
|
<li>If you want to try out a file that uses non-standard header files, you should
|
|
|
|
preprocess it (e.g., with the <tt>-save-temps</tt> or <tt>-E</tt> options to
|
|
|
|
<tt>gcc</tt>) then upload the result.</li>
|
|
|
|
|
|
|
|
</ul>
|
|
|
|
|
|
|
|
|
|
|
|
<h2><a name="demangle">Demangle C++ names with C++ filt</a></h2>
|
|
|
|
|
|
|
|
<p>
|
2019-10-24 07:42:47 +08:00
|
|
|
Select this option if you want to run the output LLVM IR through "c++filt",
|
|
|
|
which converts 'mangled' C++ names to their unmangled version.
|
|
|
|
Note that LLVM code produced will not be lexically valid, but it will
|
2007-10-06 13:15:30 +08:00
|
|
|
be easier to understand.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2><a name="lto">Run link-time optimizer</a></h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Select this option to run the LLVM link-time optimizer, which is designed to
|
|
|
|
optimize across files in your application. Since the demo page doesn't allow
|
|
|
|
you to upload multiple files at once, and does not link in any libraries, we
|
2019-10-24 07:42:47 +08:00
|
|
|
configured the demo page optimizer to assume there are no calls
|
|
|
|
coming in from outside the source file, allowing it to optimize more
|
2007-10-06 13:15:30 +08:00
|
|
|
aggressively.</p>
|
|
|
|
|
2019-10-24 07:42:47 +08:00
|
|
|
<p>Note that you have to define 'main' in your program for this
|
2007-10-06 13:15:30 +08:00
|
|
|
to make much of a difference.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
<h2><a name="stats">Show detailed pass statistics</a></h2>
|
|
|
|
|
|
|
|
<p>
|
|
|
|
Select this option to enable compilation timings and statistics from various
|
|
|
|
optimizers.</p>
|
|
|
|
|
|
|
|
|
|
|
|
<h2><a name="bcanalyzer">Analyze generated bytecode</a></h2>
|
|
|
|
|
|
|
|
<p>
|
2019-10-24 07:42:47 +08:00
|
|
|
Select this option to run the <a
|
|
|
|
href="https://llvm.org/docs/CommandGuide/llvm-bcanalyzer.html">llvm-bcanalyzer</a> tool
|
2007-10-06 13:15:30 +08:00
|
|
|
on the generated bytecode, which introspects into the format of the .bc file
|
|
|
|
itself. </p>
|
|
|
|
|
|
|
|
|
|
|
|
<h2><a name="llvm2cpp">Show C++ API code</a></h2>
|
|
|
|
|
|
|
|
<p>
|
2019-10-24 07:42:47 +08:00
|
|
|
Select this option to run the <a
|
|
|
|
href="https://llvm.org/cmds/llvm2cpp.html">llvm2cpp</a> tool
|
2007-10-06 13:15:30 +08:00
|
|
|
on the generated bytecode, which auto generates the C++ API calls that could
|
|
|
|
be used to create the .bc file.
|
|
|
|
</p>
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|