-
-<!-- _______________________________________________________________________ -->
-<div class="doc_subsection"><a name="items">Configuration Items</a></div>
-<div class="doc_text">
- <p>The table below provides definitions of the allowed configuration items
- that may appear in a configuration file. Every item has a default value and
- does not need to appear in the configuration file. Missing items will have the
- default value. Each identifier may appear as all lower case, first letter
- capitalized or all upper case.</p>
- <table>
- <tbody>
- <tr>
- <th>Name</th>
- <th>Value Type</th>
- <th>Description</th>
- <th>Default</th>
- </tr>
- <tr><td colspan="4"><h4>LANG ITEMS</h4></td></tr>
- <tr>
- <td><b>lang.name</b></td>
- <td>string</td>
- <td class="td_left">Provides the common name for a language definition.
- For example "C++", "Pascal", "FORTRAN", etc.</td>
- <td><i>blank</i></td>
- </tr>
- <tr>
- <td><b>lang.opt1</b></td>
- <td>string</td>
- <td class="td_left">Specifies the parameters to give the optimizer when
- <tt>-O1</tt> is specified on the <tt>llvmc</tt> command line.</td>
- <td><tt>-simplifycfg -instcombine -mem2reg</tt></td>
- </tr>
- <tr>
- <td><b>lang.opt2</b></td>
- <td>string</td>
- <td class="td_left">Specifies the parameters to give the optimizer when
- <tt>-O2</tt> is specified on the <tt>llvmc</tt> command line.</td>
- <td><i>TBD</i></td>
- </tr>
- <tr>
- <td><b>lang.opt3</b></td>
- <td>string</td>
- <td class="td_left">Specifies the parameters to give the optimizer when
- <tt>-O3</tt> is specified on the <tt>llvmc</tt> command line.</td>
- <td><i>TBD</i></td>
- </tr>
- <tr>
- <td><b>lang.opt4</b></td>
- <td>string</td>
- <td class="td_left">Specifies the parameters to give the optimizer when
- <tt>-O4</tt> is specified on the <tt>llvmc</tt> command line.</td>
- <td><i>TBD</i></td>
- </tr>
- <tr>
- <td><b>lang.opt5</b></td>
- <td>string</td>
- <td class="td_left">Specifies the parameters to give the optimizer when
- <tt>-O5</tt> is specified on the <tt>llvmc</tt> command line.</td>
- <td><i>TBD</i></td>
- </tr>
- <tr><td colspan="4"><h4>PREPROCESSOR ITEMS</h4></td></tr>
- <tr>
- <td><b>preprocessor.command</b></td>
- <td>command</td>
- <td class="td_left">This provides the command prototype that will be used
- to run the preprocessor. This is generally only used with the
- <tt>-E</tt> option.</td>
- <td><blank></td>
- </tr>
- <tr>
- <td><b>preprocessor.required</b></td>
- <td>boolean</td>
- <td class="td_left">This item specifies whether the pre-processing phase
- is required by the language. If the value is true, then the
- <tt>preprocessor.command</tt> value must not be blank. With this option,
- <tt>llvmc</tt> will always run the preprocessor as it assumes that the
- translation and optimization phases don't know how to pre-process their
- input.</td>
- <td>false</td>
- </tr>
- <tr><td colspan="4"><h4>TRANSLATOR ITEMS</h4></td></tr>
- <tr>
- <td><b>translator.command</b></td>
- <td>command</td>
- <td class="td_left">This provides the command prototype that will be used
- to run the translator. Valid substitutions are <tt>%in%</tt> for the
- input file and <tt>%out%</tt> for the output file.</td>
- <td><blank></td>
- </tr>
- <tr>
- <td><b>translator.output</b></td>
- <td><tt>native</tt>, <tt>bytecode</tt> or <tt>assembly</tt></td>
- <td class="td_left">This item specifies the kind of output the language's
- translator generates.</td>
- <td><tt>bytecode</tt></td>
- </tr>
- <tr>
- <td><b>translator.preprocesses</b></td>
- <td>boolean</td>
- <td class="td_left">Indicates that the translator also preprocesses. If
- this is true, then <tt>llvmc</tt> will skip the pre-processing phase
- whenever the final phase is not pre-processing.</td>
- <td><tt>false</tt></td>
- </tr>
- <tr>
- <td><b>translator.optimizes</b></td>
- <td>boolean</td>
- <td class="td_left">Indicates that the translator also optimizes. If
- this is true, then <tt>llvmc</tt> will skip the optimization phase
- whenever the final phase is optimization or later.</td>
- <td><tt>false</tt></td>
- </tr>
- <tr>
- <td><b>translator.groks_dash_o</b></td>
- <td>boolean</td>
- <td class="td_left">Indicates that the translator understands the
- <i>intent</i> of the various <tt>-O</tt><i>n</i> options to
- <tt>llvmc</tt>. This will cause the <tt>-O</tt><i>n</i> option to be
- given to the translator instead of the equivalent options provided by
- <tt>lang.opt</tt><i>n</i>.</td>
- <td><tt>false</tt></td>
- </tr>
- <tr><td colspan="4"><h4>OPTIMIZER ITEMS</h4></td></tr>
- <tr>
- <td><b>optimizer.command</b></td>
- <td>command</td>
- <td class="td_left">This provides the command prototype that will be used
- to run the optimizer. Valid substitutions are <tt>%in%</tt> for the
- input file and <tt>%out%</tt> for the output file.</td>
- <td><blank></td>
- </tr>
- <tr>
- <td><b>optimizer.output</b></td>
- <td><tt>native</tt>, <tt>bytecode</tt> or <tt>assembly</tt></td>
- <td class="td_left">This item specifies the kind of output the language's
- optimizer generates.</td>
- <td><tt>bytecode</tt></td>
- </tr>
- <tr>
- <td><b>optimizer.preprocesses</b></td>
- <td>boolean</td>
- <td class="td_left">Indicates that the optimizer also preprocesses. If
- this is true, then <tt>llvmc</tt> will skip the pre-processing phase
- whenever the final phase is optimization or later.</td>
- <td><tt>false</tt></td>
- </tr>
- <tr>
- <td><b>optimizer.translates</b></td>
- <td>boolean</td>
- <td class="td_left">Indicates that the optimizer also translates. If
- this is true, then <tt>llvmc</tt> will skip the translation phase
- whenever the final phase is optimization or later.</td>
- <td><tt>false</tt></td>
- </tr>
- <tr>
- <td><b>optimizer.groks_dash_o</b></td>
- <td>boolean</td>
- <td class="td_left">Indicates that the translator understands the
- <i>intent</i> of the various <tt>-O</tt><i>n</i> options to
- <tt>llvmc</tt>. This will cause the <tt>-O</tt><i>n</i> option to be
- given to the translator instead of the equivalent options provided by
- <tt>lang.opt</tt><i>n</i>.</td>
- <td><tt>false</tt></td>
- </tr>
- <tr><td colspan="4"><h4>ASSEMBLER ITEMS</h4></td></tr>
- <tr>
- <td><b>assembler.command</b></td>
- <td>command</td>
- <td class="td_left">This provides the command prototype that will be used
- to run the assembler. Valid substitutions are <tt>%in%</tt> for the
- input file and <tt>%out%</tt> for the output file.</td>
- <td><blank></td>
- </tr>
- <tr><td colspan="4"><h4>LINKER ITEMS</h4></td></tr>
- <tr>
- <td><b>linker.libs</b></td>
- <td>library names</td>
- <td class="td_left">This provides the list of runtime libraries that the
- source language <i>could</i> link with. In general, the libraries
- needed will be encoded into the LLVM Assembly or bytecode file.
- However, this list tells <tt>llvmc</tt> the names of the ones that
- apply to this source language. The names provided here should be
- unadorned with no suffix and no "lib" prefix.
- </td>
- <td><blank></td>
- </tr>
- <tr>
- <td><b>linker.lib_paths</b></td>
- <td>Fully qualifed local path names</td>
- <td class="td_left">This item provides a list of potential directories
- in which the source language's runtime libraries might be located. If
- a given object file compiled with this language's translator is linked
- then those libraries will be given as <tt>-L</tt> options to the
- linker.</td>
- <td><tt><blank></tt></td>
- </tr>
- <tr>
- <td><b>linker.output</b></td>
- <td><tt>native</tt>, <tt>bytecode</tt> or <tt>assembly</tt></td>
- <td class="td_left">This item specifies the kind of output the language's
- translator generates.</td>
- <td><tt>bytecode</tt></td>
- </tr>
- </tbody>
- </table>