Kevin | d68c8f4 | 2007-10-06 05:15:30 +0000 | [diff] [blame] | 1 | |
| 2 | <html> |
| 3 | <head> |
| 4 | <title> |
| 5 | Demo page information |
| 6 | </title> |
| 7 | </head> |
| 8 | |
| 9 | <body> |
| 10 | |
| 11 | <h1>Demo page information</h1> |
| 12 | |
| 13 | <p>Press "back" or <a href=".">click here</a> to return to the demo |
| 14 | page.</p> |
| 15 | |
| 16 | <h2><a name="hints">Hints and Advice</a></h2> |
| 17 | |
| 18 | <ul> |
| 19 | <li>The generated LLVM code will be easier to read if |
| 20 | you use stdio (e.g., printf) than iostreams (e.g., std::cout).</li> |
| 21 | |
| 22 | <li>Unused inline functions and methods are not generated. Instead |
| 23 | of '<tt>class foo { void bar() {}};</tt>', |
| 24 | try writing '<tt>class foo { void bar(); }; void foo::bar() {}</tt>'.</li> |
| 25 | |
| 26 | <li>If you want to try out a file that uses non-standard header files, you should |
| 27 | preprocess it (e.g., with the <tt>-save-temps</tt> or <tt>-E</tt> options to |
| 28 | <tt>gcc</tt>) then upload the result.</li> |
| 29 | |
| 30 | </ul> |
| 31 | |
| 32 | |
| 33 | <h2><a name="demangle">Demangle C++ names with C++ filt</a></h2> |
| 34 | |
| 35 | <p> |
| 36 | Select this option if you want to run the output LLVM IR through "c++filt", |
| 37 | which converts 'mangled' C++ names to their unmangled version. |
| 38 | Note that LLVM code produced will not be lexically valid, but it will |
| 39 | be easier to understand. |
| 40 | </p> |
| 41 | |
| 42 | <h2><a name="lto">Run link-time optimizer</a></h2> |
| 43 | |
| 44 | <p> |
| 45 | Select this option to run the LLVM link-time optimizer, which is designed to |
| 46 | optimize across files in your application. Since the demo page doesn't allow |
| 47 | you to upload multiple files at once, and does not link in any libraries, we |
| 48 | configured the demo page optimizer to assume there are no calls |
| 49 | coming in from outside the source file, allowing it to optimize more |
| 50 | aggressively.</p> |
| 51 | |
| 52 | <p>Note that you have to define 'main' in your program for this |
| 53 | to make much of a difference. |
| 54 | </p> |
| 55 | |
| 56 | <h2><a name="stats">Show detailed pass statistics</a></h2> |
| 57 | |
| 58 | <p> |
| 59 | Select this option to enable compilation timings and statistics from various |
| 60 | optimizers.</p> |
| 61 | |
| 62 | |
| 63 | <h2><a name="bcanalyzer">Analyze generated bytecode</a></h2> |
| 64 | |
| 65 | <p> |
| 66 | Select this option to run the <a |
| 67 | href="http://llvm.org/cmds/llvm-bcanalyzer.html">llvm-bcanalyzer</a> tool |
| 68 | on the generated bytecode, which introspects into the format of the .bc file |
| 69 | itself. </p> |
| 70 | |
| 71 | |
| 72 | <h2><a name="llvm2cpp">Show C++ API code</a></h2> |
| 73 | |
| 74 | <p> |
| 75 | Select this option to run the <a |
| 76 | href="http://llvm.org/cmds/llvm2cpp.html">llvm2cpp</a> tool |
| 77 | on the generated bytecode, which auto generates the C++ API calls that could |
| 78 | be used to create the .bc file. |
| 79 | </p> |
| 80 | |
| 81 | </body> |
| 82 | </html> |
| 83 | |