
<html>
<head>
<title>
Demo page information
</title>
</head>

<body>

<h1>Demo page information</h1>

<p>Press "back" or <a href=".">click here</a> to return to the demo 
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>

<li>Unused inline functions and methods are not generated.  Instead 
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>
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 
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
configured the demo page optimizer to assume there are no calls 
coming in from outside the source file, allowing it to optimize more 
aggressively.</p>

<p>Note that you have to define 'main' in your program for this 
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>
Select this option to run the <a 
href="http://llvm.org/cmds/llvm-bcanalyzer.html">llvm-bcanalyzer</a> tool
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>
Select this option to run the <a 
href="http://llvm.org/cmds/llvm2cpp.html">llvm2cpp</a> tool
on the generated bytecode, which auto generates the C++ API calls that could
be used to create the .bc file.
</p>

</body>
</html>

