diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2011-04-18 23:59:50 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2011-04-18 23:59:50 +0000 |
commit | 05d0265fef651de152c8127aa701e689555649f3 (patch) | |
tree | 32c85c006413daaf59823dcc14a17e8ddee26ad5 /docs | |
parent | 1f48a95ccbff731a8bcf4890204e5eef09eb99d1 (diff) | |
download | external_llvm-05d0265fef651de152c8127aa701e689555649f3.zip external_llvm-05d0265fef651de152c8127aa701e689555649f3.tar.gz external_llvm-05d0265fef651de152c8127aa701e689555649f3.tar.bz2 |
docs: Use <Hn> as Heading elements instead of <DIV class="doc_foo">.
H1 ... doc_title
H2 ... doc_section
H3 ... doc_subsection
H4 ... doc_subsubsection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129736 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs')
55 files changed, 2577 insertions, 2440 deletions
diff --git a/docs/AliasAnalysis.html b/docs/AliasAnalysis.html index c1603be..bed3ace 100644 --- a/docs/AliasAnalysis.html +++ b/docs/AliasAnalysis.html @@ -7,9 +7,9 @@ </head> <body> -<div class="doc_title"> +<h1> LLVM Alias Analysis Infrastructure -</div> +</h1> <ol> <li><a href="#introduction">Introduction</a></li> @@ -59,9 +59,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -96,9 +96,9 @@ know</a>.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="overview"><tt>AliasAnalysis</tt> Class Overview</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -125,9 +125,9 @@ same function.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="pointers">Representation of Pointers</a> -</div> +</h3> <div class="doc_text"> @@ -181,9 +181,9 @@ that the accesses alias.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="alias">The <tt>alias</tt> method</a> -</div> +</h3> <div class="doc_text"> <p>The <tt>alias</tt> method is the primary interface used to determine whether @@ -197,9 +197,9 @@ least one of the values is a <a href="LangRef.html#constants">constant</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="MustMayNo">Must, May, and No Alias Responses</a> -</div> +</h4> <div class="doc_text"> <p>The NoAlias response may be used when there is never an immediate dependence @@ -228,9 +228,9 @@ implies that the pointers compare equal.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ModRefInfo">The <tt>getModRefInfo</tt> methods</a> -</div> +</h3> <div class="doc_text"> @@ -250,9 +250,9 @@ memory written to by CS2. Note that this relation is not commutative.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="OtherItfs">Other useful <tt>AliasAnalysis</tt> methods</a> -</div> +</h3> <div class="doc_text"> @@ -264,9 +264,9 @@ analysis implementations and can be put to good use by various clients. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> The <tt>pointsToConstantMemory</tt> method -</div> +</h4> <div class="doc_text"> @@ -279,10 +279,10 @@ memory location to be modified.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="simplemodref">The <tt>doesNotAccessMemory</tt> and <tt>onlyReadsMemory</tt> methods</a> -</div> +</h4> <div class="doc_text"> @@ -308,9 +308,9 @@ functions that satisfy the <tt>doesNotAccessMemory</tt> method also satisfies </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="writingnew">Writing a new <tt>AliasAnalysis</tt> Implementation</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -324,9 +324,9 @@ implementations</a> included with LLVM.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="passsubclasses">Different Pass styles</a> -</div> +</h3> <div class="doc_text"> @@ -352,9 +352,9 @@ solve:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="requiredcalls">Required initialization calls</a> -</div> +</h3> <div class="doc_text"> @@ -393,9 +393,9 @@ bool run(Module &M) { </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="interfaces">Interfaces which may be specified</a> -</div> +</h3> <div class="doc_text"> @@ -412,9 +412,9 @@ implementing, you just override the interfaces you can improve.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="chaining"><tt>AliasAnalysis</tt> chaining behavior</a> -</div> +</h3> <div class="doc_text"> @@ -451,9 +451,9 @@ updated.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="updating">Updating analysis results for transformations</a> -</div> +</h3> <div class="doc_text"> <p> @@ -474,7 +474,7 @@ sure to call these interfaces appropriately. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">The <tt>deleteValue</tt> method</div> +<h4>The <tt>deleteValue</tt> method</h4> <div class="doc_text"> The <tt>deleteValue</tt> method is called by transformations when they remove an @@ -485,7 +485,7 @@ any entries for the specified value, if they exist. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">The <tt>copyValue</tt> method</div> +<h4>The <tt>copyValue</tt> method</h4> <div class="doc_text"> The <tt>copyValue</tt> method is used when a new value is introduced into the @@ -496,7 +496,7 @@ new value has exactly the same properties as the value being copied. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">The <tt>replaceWithNewValue</tt> method</div> +<h4>The <tt>replaceWithNewValue</tt> method</h4> <div class="doc_text"> This method is a simple helper method that is provided to make clients easier to @@ -506,7 +506,7 @@ analysis implementations. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">The <tt>addEscapingUse</tt> method</div> +<h4>The <tt>addEscapingUse</tt> method</h4> <div class="doc_text"> <p>The <tt>addEscapingUse</tt> method is used when the uses of a pointer @@ -528,9 +528,9 @@ uses below:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="implefficiency">Efficiency Issues</a> -</div> +</h3> <div class="doc_text"> @@ -544,9 +544,9 @@ method as possible (within reason).</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="limitations">Limitations</a> -</div> +</h3> <div class="doc_text"> @@ -617,9 +617,9 @@ from itself.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="using">Using alias analysis results</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -630,9 +630,9 @@ preference, these are...</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="memdep">Using the <tt>MemoryDependenceAnalysis</tt> Pass</a> -</div> +</h3> <div class="doc_text"> @@ -645,9 +645,9 @@ efficient, and is used by Dead Store Elimination, GVN, and memcpy optimizations. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ast">Using the <tt>AliasSetTracker</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -681,9 +681,9 @@ pointer argument is loop-invariant.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> The AliasSetTracker implementation -</div> +</h4> <div class="doc_text"> @@ -707,9 +707,9 @@ are.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="direct">Using the <tt>AliasAnalysis</tt> interface directly</a> -</div> +</h3> <div class="doc_text"> @@ -722,9 +722,9 @@ best precision and efficiency.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="exist">Existing alias analysis implementations and clients</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -738,9 +738,9 @@ for monitoring and evaluating different implementations.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="impls">Available <tt>AliasAnalysis</tt> implementations</a> -</div> +</h3> <div class="doc_text"> @@ -752,9 +752,9 @@ href="#chaining">chain</a> to other alias analysis implementations.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="no-aa">The <tt>-no-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -766,9 +766,9 @@ problem.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="basic-aa">The <tt>-basicaa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -794,9 +794,9 @@ many important facts:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="globalsmodref">The <tt>-globalsmodref-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -818,9 +818,9 @@ non-address taken globals), but is very quick analysis.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="steens-aa">The <tt>-steens-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -841,9 +841,9 @@ module, it is not part of the LLVM core.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ds-aa">The <tt>-ds-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -864,9 +864,9 @@ module, it is not part of the LLVM core.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="scev-aa">The <tt>-scev-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -878,9 +878,9 @@ and loop induction variables than other alias analyses have.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="aliasanalysis-xforms">Alias analysis driven transformations</a> -</div> +</h3> <div class="doc_text"> LLVM includes several alias-analysis driven transformations which can be used @@ -888,9 +888,9 @@ with any of the implementations above. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="adce">The <tt>-adce</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -902,9 +902,9 @@ not have side-effects and are not used.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="licm">The <tt>-licm</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -927,9 +927,9 @@ no may aliases to the loaded/stored memory location.</li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="argpromotion">The <tt>-argpromotion</tt> pass</a> -</div> +</h4> <div class="doc_text"> <p> @@ -942,10 +942,10 @@ pointer.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="gvn">The <tt>-gvn</tt>, <tt>-memcpyopt</tt>, and <tt>-dse</tt> passes</a> -</div> +</h4> <div class="doc_text"> @@ -955,10 +955,10 @@ pointer.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="aliasanalysis-debug">Clients for debugging and evaluation of implementations</a> -</div> +</h3> <div class="doc_text"> @@ -969,9 +969,9 @@ implementations. You can use them with commands like '<tt>opt -ds-aa </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="print-alias-sets">The <tt>-print-alias-sets</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -990,9 +990,9 @@ the <tt>AliasSetTracker</tt> class. To use it, use something like:</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="count-aa">The <tt>-count-aa</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -1014,9 +1014,9 @@ when debugging a transformation or an alias analysis implementation.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="aa-eval">The <tt>-aa-eval</tt> pass</a> -</div> +</h4> <div class="doc_text"> @@ -1029,9 +1029,9 @@ algorithm will have a lower number of may aliases).</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="memdep">Memory Dependence Analysis</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/BitCodeFormat.html b/docs/BitCodeFormat.html index 36d31c9..396904a 100644 --- a/docs/BitCodeFormat.html +++ b/docs/BitCodeFormat.html @@ -7,7 +7,7 @@ <link rel="stylesheet" href="llvm.css" type="text/css"> </head> <body> -<div class="doc_title"> LLVM Bitcode File Format </div> +<h1> LLVM Bitcode File Format</h1> <ol> <li><a href="#abstract">Abstract</a></li> <li><a href="#overview">Overview</a></li> @@ -47,7 +47,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="abstract">Abstract</a></div> +<h2><a name="abstract">Abstract</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -58,7 +58,7 @@ the LLVM IR into it.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="overview">Overview</a></div> +<h2><a name="overview">Overview</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -88,7 +88,7 @@ wrapper format, then describes the record structure used by LLVM IR files. </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="bitstream">Bitstream Format</a></div> +<h2><a name="bitstream">Bitstream Format</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -117,8 +117,9 @@ understanding the encoding.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="magic">Magic Numbers</a> -</div> +<h3> + <a name="magic">Magic Numbers</a> +</h3> <div class="doc_text"> @@ -130,8 +131,9 @@ bitcode, while application-specific programs will want to look at all four.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="primitives">Primitives</a> -</div> +<h3> + <a name="primitives">Primitives</a> +</h3> <div class="doc_text"> @@ -147,8 +149,9 @@ Integers</a>. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="fixedwidth">Fixed Width Integers</a> -</div> +<h4> + <a name="fixedwidth">Fixed Width Integers</a> +</h4> <div class="doc_text"> @@ -161,8 +164,9 @@ Integers</a>. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="variablewidth">Variable Width -Integers</a></div> +<h4> + <a name="variablewidth">Variable Width Integers</a> +</h4> <div class="doc_text"> @@ -182,7 +186,7 @@ value of 24 (011 << 3) with no continuation. The sum (3+24) yields the value </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="char6">6-bit characters</a></div> +<h4><a name="char6">6-bit characters</a></h4> <div class="doc_text"> @@ -206,7 +210,7 @@ characters not in the set.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="wordalign">Word Alignment</a></div> +<h4><a name="wordalign">Word Alignment</a></h4> <div class="doc_text"> @@ -218,8 +222,9 @@ represented as a multiple of 32-bit words.</p> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="abbrevid">Abbreviation IDs</a> -</div> +<h3> + <a name="abbrevid">Abbreviation IDs</a> +</h3> <div class="doc_text"> @@ -253,8 +258,9 @@ an <a href="#abbrev_records">abbreviated record encoding</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="blocks">Blocks</a> -</div> +<h3> + <a name="blocks">Blocks</a> +</h3> <div class="doc_text"> @@ -300,8 +306,7 @@ popped, the saved values are restored. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="ENTER_SUBBLOCK">ENTER_SUBBLOCK -Encoding</a></div> +<h4><a name="ENTER_SUBBLOCK">ENTER_SUBBLOCK Encoding</a></h4> <div class="doc_text"> @@ -322,8 +327,7 @@ reader to skip over the entire block in one jump. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="END_BLOCK">END_BLOCK -Encoding</a></div> +<h4><a name="END_BLOCK">END_BLOCK Encoding</a></h4> <div class="doc_text"> @@ -340,8 +344,9 @@ an even multiple of 32-bits. <!-- ======================================================================= --> -<div class="doc_subsection"><a name="datarecord">Data Records</a> -</div> +<h3> + <a name="datarecord">Data Records</a> +</h3> <div class="doc_text"> <p> @@ -358,8 +363,7 @@ ASCII codes for the characters in the string. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="UNABBREV_RECORD">UNABBREV_RECORD -Encoding</a></div> +<h4><a name="UNABBREV_RECORD">UNABBREV_RECORD Encoding</a></h4> <div class="doc_text"> @@ -385,8 +389,7 @@ bits. This is not an efficient encoding, but it is fully general. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="abbrev_records">Abbreviated Record -Encoding</a></div> +<h4><a name="abbrev_records">Abbreviated Record Encoding</a></h4> <div class="doc_text"> @@ -410,8 +413,9 @@ operand value).</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="abbreviations">Abbreviations</a> -</div> +<h3> + <a name="abbreviations">Abbreviations</a> +</h3> <div class="doc_text"> <p> @@ -434,8 +438,7 @@ operators, the abbreviation does not need to be emitted. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="DEFINE_ABBREV">DEFINE_ABBREV - Encoding</a></div> +<h4><a name="DEFINE_ABBREV">DEFINE_ABBREV Encoding</a></h4> <div class="doc_text"> @@ -553,8 +556,9 @@ used for any other string value. </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="stdblocks">Standard Blocks</a> -</div> +<h3> + <a name="stdblocks">Standard Blocks</a> +</h3> <div class="doc_text"> @@ -568,8 +572,7 @@ may be added. Block IDs 0-7 are reserved for standard blocks. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="BLOCKINFO">#0 - BLOCKINFO -Block</a></div> +<h4><a name="BLOCKINFO">#0 - BLOCKINFO Block</a></h4> <div class="doc_text"> @@ -621,7 +624,7 @@ from the corresponding blocks. It is not safe to skip them. </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="wrapper">Bitcode Wrapper Format</a></div> +<h2><a name="wrapper">Bitcode Wrapper Format</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -652,7 +655,7 @@ value that can be used to encode the CPU of the target. </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="llvmir">LLVM IR Encoding</a></div> +<h2><a name="llvmir">LLVM IR Encoding</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -669,11 +672,12 @@ reader is not allowed to build in any knowledge of this. </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="basics">Basics</a> -</div> +<h3> + <a name="basics">Basics</a> +</h3> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="ir_magic">LLVM IR Magic Number</a></div> +<h4><a name="ir_magic">LLVM IR Magic Number</a></h4> <div class="doc_text"> @@ -695,7 +699,7 @@ When combined with the bitcode magic number and viewed as bytes, this is </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="ir_signed_vbr">Signed VBRs</a></div> +<h4><a name="ir_signed_vbr">Signed VBRs</a></h4> <div class="doc_text"> @@ -728,7 +732,7 @@ within <tt>CONSTANTS_BLOCK</tt> blocks. <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="ir_blocks">LLVM IR Blocks</a></div> +<h4><a name="ir_blocks">LLVM IR Blocks</a></h4> <div class="doc_text"> @@ -759,8 +763,9 @@ LLVM IR is defined with the following blocks: </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="MODULE_BLOCK">MODULE_BLOCK Contents</a> -</div> +<h3> + <a name="MODULE_BLOCK">MODULE_BLOCK Contents</a> +</h3> <div class="doc_text"> @@ -785,8 +790,7 @@ following sub-blocks: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_VERSION">MODULE_CODE_VERSION Record</a> -</div> +<h4><a name="MODULE_CODE_VERSION">MODULE_CODE_VERSION Record</a></h4> <div class="doc_text"> @@ -798,8 +802,7 @@ time.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_TRIPLE">MODULE_CODE_TRIPLE Record</a> -</div> +<h4><a name="MODULE_CODE_TRIPLE">MODULE_CODE_TRIPLE Record</a></h4> <div class="doc_text"> <p><tt>[TRIPLE, ...string...]</tt></p> @@ -810,8 +813,7 @@ specification string.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_DATALAYOUT">MODULE_CODE_DATALAYOUT Record</a> -</div> +<h4><a name="MODULE_CODE_DATALAYOUT">MODULE_CODE_DATALAYOUT Record</a></h4> <div class="doc_text"> <p><tt>[DATALAYOUT, ...string...]</tt></p> @@ -822,8 +824,7 @@ specification string.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_ASM">MODULE_CODE_ASM Record</a> -</div> +<h4><a name="MODULE_CODE_ASM">MODULE_CODE_ASM Record</a></h4> <div class="doc_text"> <p><tt>[ASM, ...string...]</tt></p> @@ -834,8 +835,7 @@ individual assembly blocks separated by newline (ASCII 10) characters.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_SECTIONNAME">MODULE_CODE_SECTIONNAME Record</a> -</div> +<h4><a name="MODULE_CODE_SECTIONNAME">MODULE_CODE_SECTIONNAME Record</a></h4> <div class="doc_text"> <p><tt>[SECTIONNAME, ...string...]</tt></p> @@ -850,8 +850,7 @@ referenced by the 1-based index in the <i>section</i> fields of </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_DEPLIB">MODULE_CODE_DEPLIB Record</a> -</div> +<h4><a name="MODULE_CODE_DEPLIB">MODULE_CODE_DEPLIB Record</a></h4> <div class="doc_text"> <p><tt>[DEPLIB, ...string...]</tt></p> @@ -864,8 +863,7 @@ library name referenced.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_GLOBALVAR">MODULE_CODE_GLOBALVAR Record</a> -</div> +<h4><a name="MODULE_CODE_GLOBALVAR">MODULE_CODE_GLOBALVAR Record</a></h4> <div class="doc_text"> <p><tt>[GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal]</tt></p> @@ -929,8 +927,7 @@ has <tt>unnamed_addr</tt></li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_FUNCTION">MODULE_CODE_FUNCTION Record</a> -</div> +<h4><a name="MODULE_CODE_FUNCTION">MODULE_CODE_FUNCTION Record</a></h4> <div class="doc_text"> @@ -986,8 +983,7 @@ has <tt>unnamed_addr</tt></li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_ALIAS">MODULE_CODE_ALIAS Record</a> -</div> +<h4><a name="MODULE_CODE_ALIAS">MODULE_CODE_ALIAS Record</a></h4> <div class="doc_text"> @@ -1011,8 +1007,7 @@ for this alias</li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_PURGEVALS">MODULE_CODE_PURGEVALS Record</a> -</div> +<h4><a name="MODULE_CODE_PURGEVALS">MODULE_CODE_PURGEVALS Record</a></h4> <div class="doc_text"> <p><tt>[PURGEVALS, numvals]</tt></p> @@ -1025,8 +1020,7 @@ new value indices will start from the given <i>numvals</i> value.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="MODULE_CODE_GCNAME">MODULE_CODE_GCNAME Record</a> -</div> +<h4><a name="MODULE_CODE_GCNAME">MODULE_CODE_GCNAME Record</a></h4> <div class="doc_text"> <p><tt>[GCNAME, ...string...]</tt></p> @@ -1040,8 +1034,9 @@ fields of <tt>FUNCTION</tt> records.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="PARAMATTR_BLOCK">PARAMATTR_BLOCK Contents</a> -</div> +<h3> + <a name="PARAMATTR_BLOCK">PARAMATTR_BLOCK Contents</a> +</h3> <div class="doc_text"> @@ -1061,8 +1056,7 @@ attribute lists). </p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="PARAMATTR_CODE_ENTRY">PARAMATTR_CODE_ENTRY Record</a> -</div> +<h4><a name="PARAMATTR_CODE_ENTRY">PARAMATTR_CODE_ENTRY Record</a></h4> <div class="doc_text"> @@ -1106,8 +1100,9 @@ the logarithm base 2 of the requested alignment, plus 1</li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="TYPE_BLOCK">TYPE_BLOCK Contents</a> -</div> +<h3> + <a name="TYPE_BLOCK">TYPE_BLOCK Contents</a> +</h3> <div class="doc_text"> @@ -1127,8 +1122,7 @@ equivalent types). </p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_NUMENTRY">TYPE_CODE_NUMENTRY Record</a> -</div> +<h4><a name="TYPE_CODE_NUMENTRY">TYPE_CODE_NUMENTRY Record</a></h4> <div class="doc_text"> @@ -1142,8 +1136,7 @@ in the block. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_VOID">TYPE_CODE_VOID Record</a> -</div> +<h4><a name="TYPE_CODE_VOID">TYPE_CODE_VOID Record</a></h4> <div class="doc_text"> @@ -1155,8 +1148,7 @@ type table. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_FLOAT">TYPE_CODE_FLOAT Record</a> -</div> +<h4><a name="TYPE_CODE_FLOAT">TYPE_CODE_FLOAT Record</a></h4> <div class="doc_text"> @@ -1168,8 +1160,7 @@ floating point) type to the type table. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_DOUBLE">TYPE_CODE_DOUBLE Record</a> -</div> +<h4><a name="TYPE_CODE_DOUBLE">TYPE_CODE_DOUBLE Record</a></h4> <div class="doc_text"> @@ -1181,8 +1172,7 @@ floating point) type to the type table. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_LABEL">TYPE_CODE_LABEL Record</a> -</div> +<h4><a name="TYPE_CODE_LABEL">TYPE_CODE_LABEL Record</a></h4> <div class="doc_text"> @@ -1194,8 +1184,7 @@ the type table. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_OPAQUE">TYPE_CODE_OPAQUE Record</a> -</div> +<h4><a name="TYPE_CODE_OPAQUE">TYPE_CODE_OPAQUE Record</a></h4> <div class="doc_text"> @@ -1208,8 +1197,7 @@ unified. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_INTEGER">TYPE_CODE_INTEGER Record</a> -</div> +<h4><a name="TYPE_CODE_INTEGER">TYPE_CODE_INTEGER Record</a></h4> <div class="doc_text"> @@ -1222,8 +1210,7 @@ integer type. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_POINTER">TYPE_CODE_POINTER Record</a> -</div> +<h4><a name="TYPE_CODE_POINTER">TYPE_CODE_POINTER Record</a></h4> <div class="doc_text"> @@ -1243,8 +1230,7 @@ default address space is zero. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_FUNCTION">TYPE_CODE_FUNCTION Record</a> -</div> +<h4><a name="TYPE_CODE_FUNCTION">TYPE_CODE_FUNCTION Record</a></h4> <div class="doc_text"> @@ -1268,8 +1254,7 @@ parameter types of the function</li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_STRUCT">TYPE_CODE_STRUCT Record</a> -</div> +<h4><a name="TYPE_CODE_STRUCT">TYPE_CODE_STRUCT Record</a></h4> <div class="doc_text"> @@ -1287,8 +1272,7 @@ types of the structure</li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_ARRAY">TYPE_CODE_ARRAY Record</a> -</div> +<h4><a name="TYPE_CODE_ARRAY">TYPE_CODE_ARRAY Record</a></h4> <div class="doc_text"> @@ -1305,8 +1289,7 @@ table. The operand fields are</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_VECTOR">TYPE_CODE_VECTOR Record</a> -</div> +<h4><a name="TYPE_CODE_VECTOR">TYPE_CODE_VECTOR Record</a></h4> <div class="doc_text"> @@ -1323,8 +1306,7 @@ table. The operand fields are</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_X86_FP80">TYPE_CODE_X86_FP80 Record</a> -</div> +<h4><a name="TYPE_CODE_X86_FP80">TYPE_CODE_X86_FP80 Record</a></h4> <div class="doc_text"> @@ -1336,8 +1318,7 @@ floating point) type to the type table. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_FP128">TYPE_CODE_FP128 Record</a> -</div> +<h4><a name="TYPE_CODE_FP128">TYPE_CODE_FP128 Record</a></h4> <div class="doc_text"> @@ -1349,8 +1330,7 @@ floating point) type to the type table. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_PPC_FP128">TYPE_CODE_PPC_FP128 Record</a> -</div> +<h4><a name="TYPE_CODE_PPC_FP128">TYPE_CODE_PPC_FP128 Record</a></h4> <div class="doc_text"> @@ -1362,8 +1342,7 @@ floating point) type to the type table. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TYPE_CODE_METADATA">TYPE_CODE_METADATA Record</a> -</div> +<h4><a name="TYPE_CODE_METADATA">TYPE_CODE_METADATA Record</a></h4> <div class="doc_text"> @@ -1375,8 +1354,9 @@ type to the type table. </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="CONSTANTS_BLOCK">CONSTANTS_BLOCK Contents</a> -</div> +<h3> + <a name="CONSTANTS_BLOCK">CONSTANTS_BLOCK Contents</a> +</h3> <div class="doc_text"> @@ -1387,8 +1367,9 @@ type to the type table. <!-- ======================================================================= --> -<div class="doc_subsection"><a name="FUNCTION_BLOCK">FUNCTION_BLOCK Contents</a> -</div> +<h3> + <a name="FUNCTION_BLOCK">FUNCTION_BLOCK Contents</a> +</h3> <div class="doc_text"> @@ -1409,8 +1390,9 @@ type to the type table. <!-- ======================================================================= --> -<div class="doc_subsection"><a name="TYPE_SYMTAB_BLOCK">TYPE_SYMTAB_BLOCK Contents</a> -</div> +<h3> + <a name="TYPE_SYMTAB_BLOCK">TYPE_SYMTAB_BLOCK Contents</a> +</h3> <div class="doc_text"> @@ -1422,8 +1404,7 @@ indices. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="TST_CODE_ENTRY">TST_CODE_ENTRY Record</a> -</div> +<h4><a name="TST_CODE_ENTRY">TST_CODE_ENTRY Record</a></h4> <div class="doc_text"> @@ -1438,8 +1419,9 @@ name. Each entry corresponds to a single named type. <!-- ======================================================================= --> -<div class="doc_subsection"><a name="VALUE_SYMTAB_BLOCK">VALUE_SYMTAB_BLOCK Contents</a> -</div> +<h3> + <a name="VALUE_SYMTAB_BLOCK">VALUE_SYMTAB_BLOCK Contents</a> +</h3> <div class="doc_text"> @@ -1450,8 +1432,9 @@ name. Each entry corresponds to a single named type. <!-- ======================================================================= --> -<div class="doc_subsection"><a name="METADATA_BLOCK">METADATA_BLOCK Contents</a> -</div> +<h3> + <a name="METADATA_BLOCK">METADATA_BLOCK Contents</a> +</h3> <div class="doc_text"> @@ -1462,8 +1445,9 @@ name. Each entry corresponds to a single named type. <!-- ======================================================================= --> -<div class="doc_subsection"><a name="METADATA_ATTACHMENT">METADATA_ATTACHMENT Contents</a> -</div> +<h3> + <a name="METADATA_ATTACHMENT">METADATA_ATTACHMENT Contents</a> +</h3> <div class="doc_text"> diff --git a/docs/Bugpoint.html b/docs/Bugpoint.html index 6bbc9b7..5568fc7 100644 --- a/docs/Bugpoint.html +++ b/docs/Bugpoint.html @@ -6,9 +6,9 @@ <link rel="stylesheet" href="llvm.css" type="text/css"> </head> -<div class="doc_title"> +<h1> LLVM bugpoint tool: design and usage -</div> +</h1> <ul> <li><a href="#desc">Description</a></li> @@ -27,9 +27,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="desc">Description</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -50,9 +50,9 @@ href="HowToSubmitABug.html">How To Submit a Bug Report document</a>.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="design">Design Philosophy</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -71,9 +71,9 @@ executing it) takes a long time.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="autoselect">Automatic Debugger Selection</a> -</div> +</h3> <div class="doc_text"> @@ -104,9 +104,9 @@ Otherwise, there is no problem <tt>bugpoint</tt> can debug.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="crashdebug">Crash debugger</a> -</div> +</h3> <div class="doc_text"> @@ -129,9 +129,9 @@ reproduce the failure with <tt>opt</tt> or <tt>llc</tt>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="codegendebug">Code generator debugger</a> -</div> +</h3> <div class="doc_text"> @@ -150,9 +150,9 @@ good code.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="miscompilationdebug">Miscompilation debugger</a> -</div> +</h3> <div class="doc_text"> @@ -167,9 +167,9 @@ assumes that the selected code generator is working properly.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="advice">Advice for using bugpoint</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/CMake.html b/docs/CMake.html index 73e6f44..8ea4377 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -6,9 +6,9 @@ <link rel="stylesheet" href="llvm.css" type="text/css"> </head> -<div class="doc_title"> +<h1> Building LLVM with CMake -</div> +</h1> <ul> <li><a href="#intro">Introduction</a></li> @@ -36,9 +36,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="intro">Introduction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -59,9 +59,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="quickstart">Quick start</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -112,9 +112,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="usage">Basic CMake usage</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -160,9 +160,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="options">Options and variables</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -197,9 +197,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="freccmake">Frequently-used CMake variables</a> -</div> +</h3> <div class="doc_text"> @@ -240,9 +240,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="llvmvars">LLVM-specific variables</a> -</div> +</h3> <div class="doc_text"> @@ -358,9 +358,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="testing">Executing the test suite</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -378,9 +378,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="cross">Cross compiling</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -399,9 +399,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="embedding">Embedding LLVM in your project</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -462,9 +462,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="passdev">Developing LLVM pass out of source</a> -</div> +</h3> <div class="doc_text"> @@ -519,9 +519,9 @@ <!-- *********************************************************************** --> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="specifics">Compiler/Platform specific topics</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -530,9 +530,9 @@ </div> -<div class="doc_subsection"> +<h3> <a name="msvc">Microsoft Visual C++</a> -</div> +</h3> <div class="doc_text"> diff --git a/docs/CodeGenerator.html b/docs/CodeGenerator.html index 5ca40af..50036f2 100644 --- a/docs/CodeGenerator.html +++ b/docs/CodeGenerator.html @@ -19,9 +19,9 @@ </head> <body> -<div class="doc_title"> +<h1> The LLVM Target-Independent Code Generator -</div> +</h1> <ol> <li><a href="#introduction">Introduction</a> @@ -127,9 +127,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -191,9 +191,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="required">Required components in the code generator</a> -</div> +</h3> <div class="doc_text"> @@ -223,9 +223,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="high-level-design">The high-level design of the code generator</a> -</div> +</h3> <div class="doc_text"> @@ -297,9 +297,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="tablegen">Using TableGen for target description</a> -</div> +</h3> <div class="doc_text"> @@ -325,9 +325,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="targetdesc">Target description classes</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -349,9 +349,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetmachine">The <tt>TargetMachine</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -369,9 +369,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetdata">The <tt>TargetData</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -385,9 +385,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetlowering">The <tt>TargetLowering</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -411,9 +411,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetregisterinfo">The <tt>TargetRegisterInfo</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -445,9 +445,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetinstrinfo">The <tt>TargetInstrInfo</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -463,9 +463,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetframeinfo">The <tt>TargetFrameInfo</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -479,9 +479,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetsubtarget">The <tt>TargetSubtarget</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -495,9 +495,9 @@ <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetjitinfo">The <tt>TargetJITInfo</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -510,9 +510,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="codegendesc">Machine code description classes</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -531,9 +531,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="machineinstr">The <tt>MachineInstr</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -579,9 +579,9 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="buildmi">Using the <tt>MachineInstrBuilder.h</tt> functions</a> -</div> +</h4> <div class="doc_text"> @@ -630,9 +630,9 @@ MI.addReg(Reg, RegState::Define); </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="fixedregs">Fixed (preassigned) registers</a> -</div> +</h4> <div class="doc_text"> @@ -702,9 +702,9 @@ ret </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ssa">Machine code in SSA form</a> -</div> +</h4> <div class="doc_text"> @@ -720,9 +720,9 @@ ret </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="machinebasicblock">The <tt>MachineBasicBlock</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -737,9 +737,9 @@ ret </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="machinefunction">The <tt>MachineFunction</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -756,9 +756,9 @@ ret <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="mc">The "MC" Layer</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -783,9 +783,9 @@ in this manual. <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="mcstreamer">The <tt>MCStreamer</tt> API</a> -</div> +</h3> <div class="doc_text"> @@ -817,9 +817,9 @@ MCObjectStreamer implements a full assembler. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="mccontext">The <tt>MCContext</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -832,9 +832,9 @@ interact with to create symbols and sections. This class can not be subclassed. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="mcsymbol">The <tt>MCSymbol</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -864,9 +864,9 @@ like this to the .s file:<p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="mcsection">The <tt>MCSection</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -882,9 +882,9 @@ directive in a .s file). </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="mcinst">The <tt>MCInst</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -906,9 +906,9 @@ printer, and the type generated by the assembly parser and disassembler. <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="codegenalgs">Target-independent code generation algorithms</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -920,9 +920,9 @@ printer, and the type generated by the assembly parser and disassembler. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="instselect">Instruction Selection</a> -</div> +</h3> <div class="doc_text"> @@ -939,9 +939,9 @@ printer, and the type generated by the assembly parser and disassembler. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="selectiondag_intro">Introduction to SelectionDAGs</a> -</div> +</h4> <div class="doc_text"> @@ -1001,9 +1001,9 @@ printer, and the type generated by the assembly parser and disassembler. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="selectiondag_process">SelectionDAG Instruction Selection Process</a> -</div> +</h4> <div class="doc_text"> @@ -1082,9 +1082,9 @@ printer, and the type generated by the assembly parser and disassembler. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="selectiondag_build">Initial SelectionDAG Construction</a> -</div> +</h4> <div class="doc_text"> @@ -1102,9 +1102,9 @@ printer, and the type generated by the assembly parser and disassembler. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="selectiondag_legalize_types">SelectionDAG LegalizeTypes Phase</a> -</div> +</h4> <div class="doc_text"> @@ -1135,9 +1135,9 @@ printer, and the type generated by the assembly parser and disassembler. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="selectiondag_legalize">SelectionDAG Legalize Phase</a> -</div> +</h4> <div class="doc_text"> @@ -1167,10 +1167,11 @@ printer, and the type generated by the assembly parser and disassembler. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="selectiondag_optimize">SelectionDAG Optimization Phase: the DAG - Combiner</a> -</div> +<h4> + <a name="selectiondag_optimize"> + SelectionDAG Optimization Phase: the DAG Combiner + </a> +</h4> <div class="doc_text"> @@ -1202,9 +1203,9 @@ printer, and the type generated by the assembly parser and disassembler. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="selectiondag_select">SelectionDAG Select Phase</a> -</div> +</h4> <div class="doc_text"> @@ -1363,9 +1364,9 @@ def : Pat<(i32 imm:$imm), </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="selectiondag_sched">SelectionDAG Scheduling and Formation Phase</a> -</div> +</h4> <div class="doc_text"> @@ -1384,9 +1385,9 @@ def : Pat<(i32 imm:$imm), </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="selectiondag_future">Future directions for the SelectionDAG</a> -</div> +</h4> <div class="doc_text"> @@ -1399,15 +1400,15 @@ def : Pat<(i32 imm:$imm), </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ssamco">SSA-based Machine Code Optimizations</a> -</div> +</h3> <div class="doc_text"><p>To Be Written</p></div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="liveintervals">Live Intervals</a> -</div> +</h3> <div class="doc_text"> @@ -1420,9 +1421,9 @@ def : Pat<(i32 imm:$imm), </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="livevariable_analysis">Live Variable Analysis</a> -</div> +</h4> <div class="doc_text"> @@ -1466,9 +1467,9 @@ def : Pat<(i32 imm:$imm), </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="liveintervals_analysis">Live Intervals Analysis</a> -</div> +</h4> <div class="doc_text"> @@ -1486,9 +1487,9 @@ def : Pat<(i32 imm:$imm), </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="regalloc">Register Allocation</a> -</div> +</h3> <div class="doc_text"> @@ -1504,9 +1505,9 @@ def : Pat<(i32 imm:$imm), <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="regAlloc_represent">How registers are represented in LLVM</a> -</div> +</h4> <div class="doc_text"> @@ -1617,9 +1618,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="regAlloc_howTo">Mapping virtual registers to physical registers</a> -</div> +</h4> <div class="doc_text"> @@ -1667,9 +1668,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="regAlloc_twoAddr">Handling two address instructions</a> -</div> +</h4> <div class="doc_text"> @@ -1703,9 +1704,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="regAlloc_ssaDecon">The SSA deconstruction phase</a> -</div> +</h4> <div class="doc_text"> @@ -1727,9 +1728,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="regAlloc_fold">Instruction folding</a> -</div> +</h4> <div class="doc_text"> @@ -1764,9 +1765,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="regAlloc_builtIn">Built in register allocators</a> -</div> +</h4> <div class="doc_text"> @@ -1806,20 +1807,20 @@ $ llc -regalloc=pbqp file.bc -o pbqp.s; </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="proepicode">Prolog/Epilog Code Insertion</a> -</div> +</h3> <div class="doc_text"><p>To Be Written</p></div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="latemco">Late Machine Code Optimizations</a> -</div> +</h3> <div class="doc_text"><p>To Be Written</p></div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="codeemit">Code Emission</a> -</div> +</h3> <div class="doc_text"> @@ -1882,9 +1883,9 @@ to implement an assembler for your target.</p> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="nativeassembler">Implementing a Native Assembler</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1899,15 +1900,15 @@ compiler.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection" id="na_instparsing">Instruction Parsing</div> +<h3 id="na_instparsing">Instruction Parsing</h3> <div class="doc_text"><p>To Be Written</p></div> <!-- ======================================================================= --> -<div class="doc_subsection" id="na_instaliases"> +<h3 id="na_instaliases"> Instruction Alias Processing -</div> +</h3> <div class="doc_text"> <p>Once the instruction is parsed, it enters the MatchInstructionImpl function. @@ -1925,7 +1926,7 @@ description.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">Mnemonic Aliases</div> +<h4>Mnemonic Aliases</h4> <div class="doc_text"> @@ -1965,7 +1966,7 @@ on the current instruction set.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">Instruction Aliases</div> +<h4>Instruction Aliases</h4> <div class="doc_text"> @@ -2031,7 +2032,7 @@ subtarget specific.</p> <!-- ======================================================================= --> -<div class="doc_subsection" id="na_matching">Instruction Matching</div> +<h3 id="na_matching">Instruction Matching</h3> <div class="doc_text"><p>To Be Written</p></div> @@ -2039,9 +2040,9 @@ subtarget specific.</p> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="targetimpls">Target-specific Implementation Notes</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -2053,9 +2054,9 @@ subtarget specific.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetfeatures">Target Feature Matrix</a> -</div> +</h3> <div class="doc_text"> @@ -2231,7 +2232,7 @@ is the key:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection" id="feat_reliable">Is Generally Reliable</div> +<h4 id="feat_reliable">Is Generally Reliable</h4> <div class="doc_text"> <p>This box indicates whether the target is considered to be production quality. @@ -2241,7 +2242,7 @@ continuous use.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection" id="feat_asmparser">Assembly Parser</div> +<h4 id="feat_asmparser">Assembly Parser</h4> <div class="doc_text"> <p>This box indicates whether the target supports parsing target specific .s @@ -2253,7 +2254,7 @@ support in the native .o file writer.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection" id="feat_disassembler">Disassembler</div> +<h4 id="feat_disassembler">Disassembler</h4> <div class="doc_text"> <p>This box indicates whether the target supports the MCDisassembler API for @@ -2262,7 +2263,7 @@ disassembling machine opcode bytes into MCInst's.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection" id="feat_inlineasm">Inline Asm</div> +<h4 id="feat_inlineasm">Inline Asm</h4> <div class="doc_text"> <p>This box indicates whether the target supports most popular inline assembly @@ -2274,7 +2275,7 @@ constraints relating to the X86 floating point stack.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection" id="feat_jit">JIT Support</div> +<h4 id="feat_jit">JIT Support</h4> <div class="doc_text"> <p>This box indicates whether the target supports the JIT compiler through @@ -2286,7 +2287,7 @@ in ARM codegen mode, but lacks NEON and full Thumb support.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection" id="feat_objectwrite">.o File Writing</div> +<h4 id="feat_objectwrite">.o File Writing</h4> <div class="doc_text"> @@ -2302,7 +2303,7 @@ file to a .o file (as is the case for many C compilers).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection" id="feat_tailcall">Tail Calls</div> +<h4 id="feat_tailcall">Tail Calls</h4> <div class="doc_text"> @@ -2317,9 +2318,9 @@ more more details</a>.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="tailcallopt">Tail call optimization</a> -</div> +</h3> <div class="doc_text"> @@ -2383,9 +2384,9 @@ define fastcc i32 @tailcaller(i32 %in1, i32 %in2) { </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="sibcallopt">Sibling call optimization</a> -</div> +</h3> <div class="doc_text"> @@ -2427,9 +2428,9 @@ entry: </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="x86">The X86 backend</a> -</div> +</h3> <div class="doc_text"> @@ -2440,9 +2441,9 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="x86_tt">X86 Target Triples supported</a> -</div> +</h4> <div class="doc_text"> @@ -2469,9 +2470,9 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="x86_cc">X86 Calling Conventions supported</a> -</div> +</h4> <div class="doc_text"> @@ -2489,9 +2490,9 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="x86_memory">Representing X86 addressing modes in MachineInstrs</a> -</div> +</h4> <div class="doc_text"> @@ -2526,9 +2527,9 @@ OperandTy: VirtReg, | VirtReg, UnsImm, VirtReg, SignExtImm PhysReg </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="x86_memory">X86 address spaces supported</a> -</div> +</h4> <div class="doc_text"> @@ -2571,9 +2572,9 @@ OperandTy: VirtReg, | VirtReg, UnsImm, VirtReg, SignExtImm PhysReg </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="x86_names">Instruction naming</a> -</div> +</h4> <div class="doc_text"> @@ -2592,9 +2593,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ppc">The PowerPC backend</a> -</div> +</h3> <div class="doc_text"> @@ -2605,9 +2606,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ppc_abi">LLVM PowerPC ABI</a> -</div> +</h4> <div class="doc_text"> @@ -2625,9 +2626,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ppc_frame">Frame Layout</a> -</div> +</h4> <div class="doc_text"> @@ -2772,9 +2773,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ppc_prolog">Prolog/Epilog</a> -</div> +</h4> <div class="doc_text"> @@ -2789,9 +2790,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ppc_dynamic">Dynamic Allocation</a> -</div> +</h4> <div class="doc_text"> diff --git a/docs/CodingStandards.html b/docs/CodingStandards.html index 11655e0..ca31cab 100644 --- a/docs/CodingStandards.html +++ b/docs/CodingStandards.html @@ -7,9 +7,9 @@ </head> <body> -<div class="doc_title"> +<h1> LLVM Coding Standards -</div> +</h1> <ol> <li><a href="#introduction">Introduction</a></li> @@ -83,9 +83,9 @@ <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -117,20 +117,20 @@ href="mailto:sabre@nondot.org">Chris</a>.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="mechanicalissues">Mechanical Source Issues</a> -</div> +</h2> <!-- *********************************************************************** --> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="sourceformating">Source Code Formatting</a> -</div> +</h3> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="scf_commenting">Commenting</a> -</div> +</h4> <div class="doc_text"> @@ -208,9 +208,9 @@ happens: does the method return null? Abort? Format your hard disk?</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="scf_commentformat">Comment Formatting</a> -</div> +</h4> <div class="doc_text"> @@ -233,9 +233,9 @@ These nest properly and are better behaved in general than C style comments.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="scf_includes"><tt>#include</tt> Style</a> -</div> +</h4> <div class="doc_text"> @@ -273,9 +273,9 @@ implements are defined.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="scf_codewidth">Source Code Width</a> -</div> +</h4> <div class="doc_text"> @@ -298,9 +298,9 @@ for debate.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="scf_spacestabs">Use Spaces Instead of Tabs</a> -</div> +</h4> <div class="doc_text"> @@ -319,9 +319,9 @@ makes for incredible diffs that are absolutely worthless.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="scf_indentation">Indent Code Consistently</a> -</div> +</h4> <div class="doc_text"> @@ -333,15 +333,15 @@ Just do it.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="compilerissues">Compiler Issues</a> -</div> +</h3> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ci_warningerrors">Treat Compiler Warnings Like Errors</a> -</div> +</h4> <div class="doc_text"> @@ -393,9 +393,9 @@ be fixed by massaging the code appropriately.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ci_portable_code">Write Portable Code</a> -</div> +</h4> <div class="doc_text"> @@ -412,9 +412,9 @@ libSystem.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ci_rtti_exceptions">Do not use RTTI or Exceptions</a> -</div> +</h4> <div class="doc_text"> <p>In an effort to reduce code and executable size, LLVM does not use RTTI @@ -433,9 +433,9 @@ than <tt>dynamic_cast<></tt>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ci_class_struct">Use of <tt>class</tt> and <tt>struct</tt> Keywords</a> -</div> +</h4> <div class="doc_text"> <p>In C++, the <tt>class</tt> and <tt>struct</tt> keywords can be used almost @@ -455,23 +455,23 @@ which case <tt>struct</tt> is allowed.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="styleissues">Style Issues</a> -</div> +</h2> <!-- *********************************************************************** --> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="macro">The High-Level Issues</a> -</div> +</h3> <!-- ======================================================================= --> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="hl_module">A Public Header File <b>is</b> a Module</a> -</div> +</h4> <div class="doc_text"> @@ -499,9 +499,9 @@ translation unit.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="hl_dontinclude"><tt>#include</tt> as Little as Possible</a> -</div> +</h4> <div class="doc_text"> @@ -528,9 +528,9 @@ dependencies that you'll find out about later.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="hl_privateheaders">Keep "Internal" Headers Private</a> -</div> +</h4> <div class="doc_text"> @@ -549,9 +549,9 @@ class itself. Just make them private (or protected) and all is well.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="hl_earlyexit">Use Early Exits and <tt>continue</tt> to Simplify Code</a> -</div> +</h4> <div class="doc_text"> @@ -658,9 +658,9 @@ can be a big understandability win.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="hl_else_after_return">Don't use <tt>else</tt> after a <tt>return</tt></a> -</div> +</h4> <div class="doc_text"> @@ -741,9 +741,9 @@ track of when reading the code.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="hl_predicateloops">Turn Predicate Loops into Predicate Functions</a> -</div> +</h4> <div class="doc_text"> @@ -804,16 +804,18 @@ locality.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="micro">The Low-Level Issues</a> -</div> +</h3> <!-- ======================================================================= --> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="ll_naming">Name Types, Functions, Variables, and Enumerators Properly</a> -</div> +<h4> + <a name="ll_naming"> + Name Types, Functions, Variables, and Enumerators Properly + </a> +</h4> <div class="doc_text"> @@ -894,9 +896,9 @@ Vehicle MakeVehicle(VehicleType Type) { <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ll_assert">Assert Liberally</a> -</div> +</h4> <div class="doc_text"> @@ -997,9 +999,9 @@ assert(NewToSet && "The value shouldn't be in the set yet"); </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ll_ns_std">Do Not Use '<tt>using namespace std</tt>'</a> -</div> +</h4> <div class="doc_text"> @@ -1035,10 +1037,11 @@ use any others.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="ll_virtual_anch">Provide a Virtual Method Anchor for Classes - in Headers</a> -</div> +<h4> + <a name="ll_virtual_anch"> + Provide a Virtual Method Anchor for Classes in Headers + </a> +</h4> <div class="doc_text"> @@ -1052,9 +1055,9 @@ increasing link times.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ll_end">Don't evaluate <tt>end()</tt> every time through a loop</a> -</div> +</h4> <div class="doc_text"> @@ -1114,9 +1117,9 @@ prefer it.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ll_iostream"><tt>#include <iostream></tt> is Forbidden</a> -</div> +</h4> <div class="doc_text"> @@ -1149,9 +1152,9 @@ the <tt>llvm::MemoryBuffer</tt> API for reading files.</b></p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ll_raw_ostream">Use <tt>raw_ostream</tt></a> -</div> +</h4> <div class="doc_text"> @@ -1169,9 +1172,9 @@ declarations and constant references to <tt>raw_ostream</tt> instances.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ll_avoidendl">Avoid <tt>std::endl</tt></a> -</div> +</h4> <div class="doc_text"> @@ -1193,18 +1196,18 @@ it's better to use a literal <tt>'\n'</tt>.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="nano">Microscopic Details</a> -</div> +</h3> <!-- ======================================================================= --> <p>This section describes preferred low-level formatting guidelines along with reasoning on why we prefer them.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="micro_spaceparen">Spaces Before Parentheses</a> -</div> +</h4> <div class="doc_text"> @@ -1260,9 +1263,9 @@ this misinterpretation.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="micro_preincrement">Prefer Preincrement</a> -</div> +</h4> <div class="doc_text"> @@ -1280,9 +1283,9 @@ get in the habit of always using preincrement, and you won't have a problem.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="micro_namespaceindent">Namespace Indentation</a> -</div> +</h4> <div class="doc_text"> @@ -1368,9 +1371,9 @@ the contents of the namespace.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="micro_anonns">Anonymous Namespaces</a> -</div> +</h4> <div class="doc_text"> @@ -1455,9 +1458,9 @@ namespace just because it was declared there. <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="seealso">See Also</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/CommandGuide/index.html b/docs/CommandGuide/index.html index 4ab1b51..98e97ee 100644 --- a/docs/CommandGuide/index.html +++ b/docs/CommandGuide/index.html @@ -7,9 +7,9 @@ </head> <body> -<div class="doc_title"> +<h1> LLVM Command Guide -</div> +</h1> <div class="doc_text"> @@ -23,9 +23,9 @@ options) arguments to the tool you are interested in.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="basic">Basic Commands</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -80,9 +80,9 @@ options) arguments to the tool you are interested in.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="frontend">C and C++ Front-end Commands</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -99,9 +99,9 @@ options) arguments to the tool you are interested in.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="debug">Debugging Tools</a> -</div> +</h2> <!-- *********************************************************************** --> @@ -123,9 +123,9 @@ options) arguments to the tool you are interested in.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="internal">Internal Tools</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/CommandLine.html b/docs/CommandLine.html index 83b2ebb..0bcd382 100644 --- a/docs/CommandLine.html +++ b/docs/CommandLine.html @@ -8,9 +8,9 @@ </head> <body> -<div class="doc_title"> +<h1> CommandLine 2.0 Library Manual -</div> +</h1> <ol> <li><a href="#introduction">Introduction</a></li> @@ -100,9 +100,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -184,9 +184,9 @@ href="mailto:sabre@nondot.org">Chris Lattner</a>.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="quickstart">Quick Start Guide</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -324,9 +324,9 @@ OPTIONS: </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="bool">Boolean Arguments</a> -</div> +</h3> <div class="doc_text"> @@ -406,9 +406,9 @@ and <a href="#list">lists</a> of options.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="alias">Argument Aliases</a> -</div> +</h3> <div class="doc_text"> @@ -456,10 +456,10 @@ uses.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="onealternative">Selecting an alternative from a set of possibilities</a> -</div> +</h3> <div class="doc_text"> @@ -567,9 +567,9 @@ which is when you would use it.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="namedalternatives">Named Alternatives</a> -</div> +</h3> <div class="doc_text"> @@ -629,9 +629,9 @@ that you can choose the form most appropriate for your application.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="list">Parsing a list of options</a> -</div> +</h3> <div class="doc_text"> @@ -699,9 +699,9 @@ checking we have to do.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="bits">Collecting options as a set of flags</a> -</div> +</h3> <div class="doc_text"> @@ -758,9 +758,9 @@ href="#list"> <tt>cl::list</tt></a> option.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="description">Adding freeform text to help output</a> -</div> +</h3> <div class="doc_text"> @@ -802,9 +802,9 @@ OPTIONS: <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="referenceguide">Reference Guide</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -817,9 +817,9 @@ processing capabilities.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="positional">Positional Arguments</a> -</div> +</h3> <div class="doc_text"> @@ -858,9 +858,9 @@ define all of your positional arguments in one .cpp file.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="--">Specifying positional options with hyphens</a> -</div> +</h4> <div class="doc_text"> @@ -895,9 +895,9 @@ can use it like this:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="getPosition">Determining absolute position with getPosition()</a> -</div> +</h4> <div class="doc_text"> <p>Sometimes an option can affect or modify the meaning of another option. For example, consider <tt>gcc</tt>'s <tt>-x LANG</tt> option. This tells @@ -954,9 +954,9 @@ can use it like this:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::ConsumeAfter">The <tt>cl::ConsumeAfter</tt> modifier</a> -</div> +</h4> <div class="doc_text"> @@ -1007,9 +1007,9 @@ href="#cl::list">cl::list</a> option.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="storage">Internal vs External Storage</a> -</div> +</h3> <div class="doc_text"> @@ -1076,9 +1076,9 @@ that <tt>DebugFlag</tt> is automatically set.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="attributes">Option Attributes</a> -</div> +</h3> <div class="doc_text"> @@ -1166,9 +1166,9 @@ obviously).</li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="modifiers">Option Modifiers</a> -</div> +</h3> <div class="doc_text"> @@ -1199,9 +1199,9 @@ usually shouldn't have to worry about these.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="hiding">Hiding an option from <tt>-help</tt> output</a> -</div> +</h4> <div class="doc_text"> @@ -1230,10 +1230,10 @@ indicates that the option should not appear in any help output.</li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="numoccurrences">Controlling the number of occurrences required and allowed</a> -</div> +</h4> <div class="doc_text"> @@ -1279,9 +1279,9 @@ retained.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="valrequired">Controlling whether or not a value must be specified</a> -</div> +</h4> <div class="doc_text"> @@ -1328,9 +1328,9 @@ when <a href="#extensionguide">extending the library</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="formatting">Controlling other formatting options</a> -</div> +</h4> <div class="doc_text"> @@ -1409,9 +1409,9 @@ strategy basically looks like this:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="misc">Miscellaneous option modifiers</a> -</div> +</h4> <div class="doc_text"> @@ -1453,9 +1453,9 @@ only makes sense with a <a href="#cl::list">cl::list</a> option.</li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="response">Response files</a> -</div> +</h4> <div class="doc_text"> @@ -1476,9 +1476,9 @@ and <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="toplevel">Top-Level Classes and Functions</a> -</div> +</h3> <div class="doc_text"> @@ -1493,10 +1493,10 @@ classes in detail.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::ParseCommandLineOptions">The <tt>cl::ParseCommandLineOptions</tt> function</a> -</div> +</h4> <div class="doc_text"> @@ -1514,10 +1514,10 @@ which holds <a href="#description">additional extra text</a> to emit when the </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::ParseEnvironmentOptions">The <tt>cl::ParseEnvironmentOptions</tt> function</a> -</div> +</h4> <div class="doc_text"> @@ -1551,10 +1551,10 @@ input.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::SetVersionPrinter">The <tt>cl::SetVersionPrinter</tt> function</a> -</div> +</h4> <div class="doc_text"> @@ -1572,9 +1572,9 @@ called when the <tt>--version</tt> option is given by the user.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::opt">The <tt>cl::opt</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -1607,9 +1607,9 @@ href="#customparser">custom parser</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::list">The <tt>cl::list</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -1634,9 +1634,9 @@ be used.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::bits">The <tt>cl::bits</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -1659,9 +1659,9 @@ must be of <b>type</b> <tt>unsigned</tt> if external storage is used.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::alias">The <tt>cl::alias</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -1682,9 +1682,9 @@ the conversion from string to data.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="cl::extrahelp">The <tt>cl::extrahelp</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -1710,9 +1710,9 @@ single <tt>cl::extrahelp</tt> instance.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="builtinparsers">Builtin parsers</a> -</div> +</h3> <div class="doc_text"> @@ -1774,9 +1774,9 @@ exponential notation (ex: <tt>1.7e15</tt>) and properly supports locales. </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="extensionguide">Extension Guide</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1789,9 +1789,9 @@ the covers and illustrates how to do some simple, common, extensions.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="customparser">Writing a custom parser</a> -</div> +</h3> <div class="doc_text"> @@ -1932,9 +1932,9 @@ tutorial.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="explotingexternal">Exploiting external storage</a> -</div> +</h3> <div class="doc_text"> <p>Several of the LLVM libraries define static <tt>cl::opt</tt> instances that @@ -1951,9 +1951,9 @@ tutorial.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="dynamicopts">Dynamically adding command line options</a> -</div> +</h3> <div class="doc_text"> diff --git a/docs/CompilerWriterInfo.html b/docs/CompilerWriterInfo.html index daee931..6be1b63 100644 --- a/docs/CompilerWriterInfo.html +++ b/docs/CompilerWriterInfo.html @@ -9,9 +9,9 @@ <body> -<div class="doc_title"> +<h1> Architecture/platform information for compiler writers -</div> +</h1> <div class="doc_warning"> <p>Note: This document is a work-in-progress. Additions and clarifications @@ -43,11 +43,11 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="hw">Hardware</a></div> +<h2><a name="hw">Hardware</a></h2> <!-- *********************************************************************** --> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="alpha">Alpha</a></div> +<h3><a name="alpha">Alpha</a></h3> <div class="doc_text"> <ul> @@ -58,7 +58,7 @@ href="http://ftp.digital.com/pub/Digital/info/semiconductor/literature/dsc-libra </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="arm">ARM</a></div> +<h3><a name="arm">ARM</a></h3> <div class="doc_text"> <ul> @@ -70,7 +70,7 @@ Cores</a>)</li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="ia64">Itanium (ia64)</a></div> +<h3><a name="ia64">Itanium (ia64)</a></h3> <div class="doc_text"> <ul> @@ -81,7 +81,7 @@ href="http://developer.intel.com/design/itanium2/documentation.htm">Itanium docu </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="mips">MIPS</a></div> +<h3><a name="mips">MIPS</a></h3> <div class="doc_text"> <ul> @@ -92,10 +92,10 @@ Processor Architecture</a></li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="ppc">PowerPC</a></div> +<h3><a name="ppc">PowerPC</a></h3> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">IBM - Official manuals and docs</div> +<h4>IBM - Official manuals and docs</h4> <div class="doc_text"> @@ -129,7 +129,7 @@ PowerPC architecture</a></li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">Other documents, collections, notes</div> +<h4>Other documents, collections, notes</h4> <div class="doc_text"> @@ -144,7 +144,7 @@ branch stubs for powerpc64-linux (from binutils)</a></li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="sparc">SPARC</a></div> +<h3><a name="sparc">SPARC</a></h3> <div class="doc_text"> @@ -156,10 +156,10 @@ branch stubs for powerpc64-linux (from binutils)</a></li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="x86">X86</a></div> +<h3><a name="x86">X86</a></h3> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">AMD - Official manuals and docs</div> +<h4>AMD - Official manuals and docs</h4> <div class="doc_text"> <ul> @@ -170,7 +170,7 @@ href="http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739,00.ht </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">Intel - Official manuals and docs</div> +<h4>Intel - Official manuals and docs</h4> <div class="doc_text"> <ul> @@ -184,7 +184,7 @@ Itanium documentation</a></li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">Other x86-specific information</div> +<h4>Other x86-specific information</h4> <div class="doc_text"> <ul> @@ -194,7 +194,7 @@ conventions for different C++ compilers and operating systems</a></li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="other">Other relevant lists</a></div> +<h3><a name="other">Other relevant lists</a></h3> <div class="doc_text"> @@ -205,11 +205,11 @@ conventions for different C++ compilers and operating systems</a></li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="abi">ABI</a></div> +<h2><a name="abi">ABI</a></h2> <!-- *********************************************************************** --> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="linux">Linux</a></div> +<h3><a name="linux">Linux</a></h3> <div class="doc_text"> <ol> @@ -219,7 +219,7 @@ Supplement</a></li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="osx">OS X</a></div> +<h3><a name="osx">OS X</a></h3> <div class="doc_text"> <ol> @@ -233,7 +233,7 @@ ABI</a></li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="misc">Miscellaneous resources</a></div> +<h2><a name="misc">Miscellaneous resources</a></h2> <!-- *********************************************************************** --> <ul> diff --git a/docs/DebuggingJITedCode.html b/docs/DebuggingJITedCode.html index 5b174d7..f23fdf6 100644 --- a/docs/DebuggingJITedCode.html +++ b/docs/DebuggingJITedCode.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">Debugging JITed Code With GDB</div> +<h1>Debugging JITed Code With GDB</h1> <ol> <li><a href="#example">Example usage</a></li> <li><a href="#background">Background</a></li> @@ -15,7 +15,7 @@ <div class="doc_author">Written by Reid Kleckner</div> <!--=========================================================================--> -<div class="doc_section"><a name="example">Example usage</a></div> +<h2><a name="example">Example usage</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -96,7 +96,7 @@ function names. </div> <!--=========================================================================--> -<div class="doc_section"><a name="background">Background</a></div> +<h2><a name="background">Background</a></h2> <!--=========================================================================--> <div class="doc_text"> diff --git a/docs/DeveloperPolicy.html b/docs/DeveloperPolicy.html index 633de1a..5d6c2d8 100644 --- a/docs/DeveloperPolicy.html +++ b/docs/DeveloperPolicy.html @@ -8,7 +8,7 @@ </head> <body> -<div class="doc_title">LLVM Developer Policy</div> +<h1>LLVM Developer Policy</h1> <ol> <li><a href="#introduction">Introduction</a></li> <li><a href="#policies">Developer Policies</a> @@ -34,7 +34,7 @@ <div class="doc_author">Written by the LLVM Oversight Team</div> <!--=========================================================================--> -<div class="doc_section"><a name="introduction">Introduction</a></div> +<h2><a name="introduction">Introduction</a></h2> <!--=========================================================================--> <div class="doc_text"> <p>This document contains the LLVM Developer Policy which defines the project's @@ -63,7 +63,7 @@ </div> <!--=========================================================================--> -<div class="doc_section"><a name="policies">Developer Policies</a></div> +<h2><a name="policies">Developer Policies</a></h2> <!--=========================================================================--> <div class="doc_text"> <p>This section contains policies that pertain to frequent LLVM developers. We @@ -75,7 +75,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> <a name="informed">Stay Informed</a> </div> +<h3><a name="informed">Stay Informed</a></h3> <div class="doc_text"> <p>Developers should stay informed by reading at least the "dev" mailing list for the projects you are interested in, such as @@ -102,7 +102,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> <a name="patches">Making a Patch</a></div> +<h3><a name="patches">Making a Patch</a></h3> <div class="doc_text"> <p>When making a patch for review, the goal is to make it as easy for the @@ -142,7 +142,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> <a name="reviews">Code Reviews</a></div> +<h3><a name="reviews">Code Reviews</a></h3> <div class="doc_text"> <p>LLVM has a code review policy. Code review is one way to increase the quality of software. We generally follow these policies:</p> @@ -174,7 +174,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> <a name="owners">Code Owners</a></div> +<h3><a name="owners">Code Owners</a></h3> <div class="doc_text"> <p>The LLVM Project relies on two features of its process to maintain rapid @@ -225,7 +225,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> <a name="testcases">Test Cases</a></div> +<h3><a name="testcases">Test Cases</a></h3> <div class="doc_text"> <p>Developers are required to create test cases for any bugs fixed and any new features added. Some tips for getting your testcase approved:</p> @@ -258,7 +258,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> <a name="quality">Quality</a></div> +<h3><a name="quality">Quality</a></h3> <div class="doc_text"> <p>The minimum quality standards that any change must satisfy before being committed to the main development branch are:</p> @@ -318,8 +318,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> - <a name="commitaccess">Obtaining Commit Access</a></div> +<h3><a name="commitaccess">Obtaining Commit Access</a></h3> <div class="doc_text"> <p>We grant commit access to contributors with a track record of submitting high @@ -381,7 +380,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> <a name="newwork">Making a Major Change</a></div> +<h3><a name="newwork">Making a Major Change</a></h3> <div class="doc_text"> <p>When a developer begins a major new project with the aim of contributing it back to LLVM, s/he should inform the community with an email to @@ -410,8 +409,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> <a name="incremental">Incremental Development</a> -</div> +<h3><a name="incremental">Incremental Development</a></h3> <div class="doc_text"> <p>In the LLVM project, we do all significant changes as a series of incremental patches. We have a strong dislike for huge changes or long-term development @@ -472,8 +470,7 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="attribution">Attribution of -Changes</a></div> +<h3><a name="attribution">Attribution of Changes</a></h3> <div class="doc_text"> <p>We believe in correct attribution of contributions to their contributors. However, we do not want the source code to be littered with random @@ -487,9 +484,9 @@ Changes</a></div> </div> <!--=========================================================================--> -<div class="doc_section"> +<h2> <a name="clp">Copyright, License, and Patents</a> -</div> +</h2> <!--=========================================================================--> <div class="doc_text"> @@ -507,7 +504,7 @@ Changes</a></div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="copyright">Copyright</a></div> +<h3><a name="copyright">Copyright</a></h3> <div class="doc_text"> <p>The LLVM project does not require copyright assignments, which means that the @@ -530,7 +527,7 @@ Changes</a></div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="license">License</a></div> +<h3><a name="license">License</a></h3> <div class="doc_text"> <p>We intend to keep LLVM perpetually open source and to use a liberal open source license. All of the code in LLVM is available under the @@ -585,7 +582,7 @@ Changes</a></div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="patents">Patents</a></div> +<h3><a name="patents">Patents</a></h3> <div class="doc_text"> <p>To the best of our knowledge, LLVM does not infringe on any patents (we have actually removed code from LLVM in the past that was found to infringe). diff --git a/docs/ExceptionHandling.html b/docs/ExceptionHandling.html index 1738bdf..09e0946 100644 --- a/docs/ExceptionHandling.html +++ b/docs/ExceptionHandling.html @@ -11,7 +11,7 @@ <body> -<div class="doc_title">Exception Handling in LLVM</div> +<h1>Exception Handling in LLVM</h1> <table class="layout" style="width:100%"> <tr class="layout"> @@ -58,7 +58,7 @@ <!-- *********************************************************************** --> -<div class="doc_section"><a name="introduction">Introduction</a></div> +<h2><a name="introduction">Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -73,9 +73,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="itanium">Itanium ABI Zero-cost Exception Handling</a> -</div> +</h3> <div class="doc_text"> @@ -106,9 +106,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="sjlj">Setjmp/Longjmp Exception Handling</a> -</div> +</h3> <div class="doc_text"> @@ -138,9 +138,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="overview">Overview</a> -</div> +</h3> <div class="doc_text"> @@ -186,9 +186,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_section"> +<h2> <a name="codegen">LLVM Code Generation</a> -</div> +</h2> <div class="doc_text"> @@ -203,9 +203,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="throw">Throw</a> -</div> +</h3> <div class="doc_text"> @@ -225,9 +225,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="try_catch">Try/Catch</a> -</div> +</h3> <div class="doc_text"> @@ -313,9 +313,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="cleanups">Cleanups</a> -</div> +</h3> <div class="doc_text"> @@ -332,9 +332,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="throw_filters">Throw Filters</a> -</div> +</h3> <div class="doc_text"> @@ -359,9 +359,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="restrictions">Restrictions</a> -</div> +</h3> <div class="doc_text"> @@ -385,9 +385,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_section"> +<h2> <a name="format_common_intrinsics">Exception Handling Intrinsics</a> -</div> +</h2> <div class="doc_text"> @@ -398,9 +398,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="llvm_eh_exception">llvm.eh.exception</a> -</div> +</h4> <div class="doc_text"> @@ -413,9 +413,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="llvm_eh_selector">llvm.eh.selector</a> -</div> +</h4> <div class="doc_text"> @@ -445,9 +445,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="llvm_eh_typeid_for">llvm.eh.typeid.for</a> -</div> +</h4> <div class="doc_text"> @@ -463,9 +463,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="llvm_eh_sjlj_setjmp">llvm.eh.sjlj.setjmp</a> -</div> +</h4> <div class="doc_text"> @@ -492,9 +492,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="llvm_eh_sjlj_longjmp">llvm.eh.sjlj.longjmp</a> -</div> +</h4> <div class="doc_text"> @@ -512,9 +512,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="llvm_eh_sjlj_lsda">llvm.eh.sjlj.lsda</a> -</div> +</h4> <div class="doc_text"> @@ -531,9 +531,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="llvm_eh_sjlj_callsite">llvm.eh.sjlj.callsite</a> -</div> +</h4> <div class="doc_text"> @@ -549,9 +549,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="llvm_eh_sjlj_dispatchsetup">llvm.eh.sjlj.dispatchsetup</a> -</div> +</h4> <div class="doc_text"> @@ -566,9 +566,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_section"> +<h2> <a name="asm">Asm Table Formats</a> -</div> +</h2> <div class="doc_text"> @@ -578,9 +578,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="unwind_tables">Exception Handling Frame</a> -</div> +</h3> <div class="doc_text"> @@ -596,9 +596,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="exception_tables">Exception Tables</a> -</div> +</h3> <div class="doc_text"> @@ -612,9 +612,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_section"> +<h2> <a name="todo">ToDo</a> -</div> +</h2> <div class="doc_text"> diff --git a/docs/ExtendingLLVM.html b/docs/ExtendingLLVM.html index df706ea..7f77bb7 100644 --- a/docs/ExtendingLLVM.html +++ b/docs/ExtendingLLVM.html @@ -8,9 +8,9 @@ <body> -<div class="doc_title"> +<h1> Extending LLVM: Adding instructions, intrinsics, types, etc. -</div> +</h1> <ol> <li><a href="#introduction">Introduction and Warning</a></li> @@ -31,9 +31,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction and Warning</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -68,9 +68,9 @@ effort by doing so.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="intrinsic">Adding a new intrinsic function</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -130,9 +130,9 @@ support for it. Generally you must do the following steps:</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="sdnode">Adding a new SelectionDAG node</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -220,9 +220,9 @@ complicated behavior in a single node (rotate).</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="instruction">Adding a new instruction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -277,9 +277,9 @@ to understand this new instruction.</p> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="type">Adding a new type</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -291,9 +291,9 @@ installations.</span> Only add new types if it is absolutely necessary.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="fund_type">Adding a fundamental type</a> -</div> +</h3> <div class="doc_text"> @@ -317,9 +317,9 @@ installations.</span> Only add new types if it is absolutely necessary.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="derived_type">Adding a derived type</a> -</div> +</h3> <div class="doc_text"> diff --git a/docs/FAQ.html b/docs/FAQ.html index ae3a0da..620cf25 100644 --- a/docs/FAQ.html +++ b/docs/FAQ.html @@ -12,9 +12,9 @@ </head> <body> -<div class="doc_title"> +<h1> LLVM: Frequently Asked Questions -</div> +</h1> <ol> <li><a href="#license">License</a> @@ -138,9 +138,9 @@ <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="license">License</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="question"> @@ -189,9 +189,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="source">Source Code</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="question"> @@ -227,9 +227,9 @@ LLVM have been ported to a plethora of platforms.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="build">Build Problems</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="question"> @@ -449,7 +449,9 @@ Stop. </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="felangs">Source Languages</a></div> +<h2> + <a name="felangs">Source Languages</a> +</h2> <div class="question"> <p><a name="langs">What source languages are supported?</a></p> @@ -555,9 +557,9 @@ Stop. </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="cfe">Using the GCC Front End</a> -</div> +</h2> <div class="question"> <p>When I compile software that uses a configure script, the configure script @@ -712,9 +714,9 @@ Stop. </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="cfe_code">Questions about code generated by the GCC front-end</a> -</div> +</h2> <div class="question"> <p><a name="iosinit">What is this <tt>llvm.global_ctors</tt> and diff --git a/docs/GCCFEBuildInstrs.html b/docs/GCCFEBuildInstrs.html index 6714a49..f3c9459 100644 --- a/docs/GCCFEBuildInstrs.html +++ b/docs/GCCFEBuildInstrs.html @@ -8,9 +8,9 @@ </head> <body> -<div class="doc_title"> +<h1> Building the LLVM GCC Front-End -</div> +</h1> <ol> <li><a href="#instructions">Building llvm-gcc from Source</a></li> diff --git a/docs/GarbageCollection.html b/docs/GarbageCollection.html index bd114b5..aa83a2d 100644 --- a/docs/GarbageCollection.html +++ b/docs/GarbageCollection.html @@ -13,9 +13,9 @@ </head> <body> -<div class="doc_title"> +<h1> Accurate Garbage Collection with LLVM -</div> +</h1> <ol> <li><a href="#introduction">Introduction</a> @@ -79,9 +79,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -127,9 +127,9 @@ support accurate garbage collection.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="feature">Goals and non-goals</a> -</div> +</h3> <div class="doc_text"> @@ -199,9 +199,9 @@ compiler matures.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="quickstart">Getting started</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -249,9 +249,9 @@ into <tt>llc</tt> and works even with the interpreter and C backends.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="quickstart-compiler">In your compiler</a> -</div> +</h3> <div class="doc_text"> @@ -276,9 +276,9 @@ switching to a more advanced GC.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="quickstart-runtime">In your runtime</a> -</div> +</h3> <div class="doc_text"> @@ -343,9 +343,9 @@ void visitGCRoots(void (*Visitor)(void **Root, const void *Meta)) { }</pre></div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="shadow-stack">About the shadow stack</a> -</div> +</h3> <div class="doc_text"> @@ -373,9 +373,9 @@ in order to improve performance.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="core">IR features</a><a name="intrinsics"></a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -393,9 +393,9 @@ program.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="gcattr">Specifying GC code generation: <tt>gc "..."</tt></a> -</div> +</h3> <div class="doc_code"><tt> define <i>ty</i> @<i>name</i>(...) <span style="text-decoration: underline">gc "<i>name</i>"</span> { ... @@ -418,9 +418,9 @@ programs that use different garbage collection algorithms (or none at all).</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="gcroot">Identifying GC roots on the stack: <tt>llvm.gcroot</tt></a> -</div> +</h3> <div class="doc_code"><tt> void @llvm.gcroot(i8** %ptrloc, i8* %metadata) @@ -494,9 +494,9 @@ CodeBlock: </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="barriers">Reading and writing references in the heap</a> -</div> +</h3> <div class="doc_text"> @@ -537,9 +537,9 @@ are used.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="gcwrite">Write barrier: <tt>llvm.gcwrite</tt></a> -</div> +</h4> <div class="doc_code"><tt> void @llvm.gcwrite(i8* %value, i8* %object, i8** %derived) @@ -559,9 +559,9 @@ implement reference counting.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="gcread">Read barrier: <tt>llvm.gcread</tt></a> -</div> +</h4> <div class="doc_code"><tt> i8* @llvm.gcread(i8* %object, i8** %derived)<br> @@ -581,9 +581,9 @@ writes.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="plugin">Implementing a collector plugin</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -669,9 +669,9 @@ as a language-specific compiler front-end.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="collector-algos">Overview of available features</a> -</div> +</h3> <div class="doc_text"> @@ -958,9 +958,9 @@ interest.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="stack-map">Computing stack maps</a> -</div> +</h3> <div class="doc_text"> @@ -1014,9 +1014,9 @@ for collector plugins which implement reference counting or a shadow stack.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="init-roots">Initializing roots to null: <tt>InitRoots</tt></a> -</div> +</h3> <div class="doc_text"> @@ -1039,10 +1039,10 @@ this feature should be used by all GC plugins. It is enabled by default.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="custom">Custom lowering of intrinsics: <tt>CustomRoots</tt>, <tt>CustomReadBarriers</tt>, and <tt>CustomWriteBarriers</tt></a> -</div> +</h3> <div class="doc_text"> @@ -1129,9 +1129,9 @@ bool MyGC::performCustomLowering(Function &F) { <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="safe-points">Generating safe points: <tt>NeededSafePoints</tt></a> -</div> +</h3> <div class="doc_text"> @@ -1193,9 +1193,9 @@ safe point (because only the topmost function has been patched).</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="assembly">Emitting assembly code: <tt>GCMetadataPrinter</tt></a> -</div> +</h3> <div class="doc_text"> @@ -1343,9 +1343,9 @@ void MyGCPrinter::finishAssembly(std::ostream &OS, AsmPrinter &AP, <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="references">References</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/GetElementPtr.html b/docs/GetElementPtr.html index 9e3f8bb..d1c5b6c 100644 --- a/docs/GetElementPtr.html +++ b/docs/GetElementPtr.html @@ -11,9 +11,9 @@ </head> <body> -<div class="doc_title"> +<h1> The Often Misunderstood GEP Instruction -</div> +</h1> <ol> <li><a href="#intro">Introduction</a></li> @@ -58,7 +58,7 @@ <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro"><b>Introduction</b></a></div> +<h2><a name="intro">Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -72,7 +72,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="addresses"><b>Address Computation</b></a></div> +<h2><a name="addresses">Address Computation</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> <p>When people are first confronted with the GEP instruction, they tend to @@ -83,9 +83,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="firstptr"><b>What is the first index of the GEP instruction?</b></a> -</div> +<h3> + <a name="firstptr">What is the first index of the GEP instruction?</a> +</h3> <div class="doc_text"> <p>Quick answer: The index stepping through the first operand.</p> <p>The confusion with the first index usually arises from thinking about @@ -205,9 +205,9 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="extra_index"><b>Why is the extra 0 index required?</b></a> -</div> +<h3> + <a name="extra_index">Why is the extra 0 index required?</a> +</h3> <!-- *********************************************************************** --> <div class="doc_text"> <p>Quick answer: there are no superfluous indices.</p> @@ -247,9 +247,9 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="deref"><b>What is dereferenced by GEP?</b></a> -</div> +<h3> + <a name="deref">What is dereferenced by GEP?</a> +</h3> <div class="doc_text"> <p>Quick answer: nothing.</p> <p>The GetElementPtr instruction dereferences nothing. That is, it doesn't @@ -302,9 +302,9 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="lead0"><b>Why don't GEP x,0,0,1 and GEP x,1 alias?</b></a> -</div> +<h3> + <a name="lead0">Why don't GEP x,0,0,1 and GEP x,1 alias?</a> +</h3> <div class="doc_text"> <p>Quick Answer: They compute different address locations.</p> <p>If you look at the first indices in these GEP @@ -331,9 +331,9 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="trail0"><b>Why do GEP x,1,0,0 and GEP x,1 alias?</b></a> -</div> +<h3> + <a name="trail0">Why do GEP x,1,0,0 and GEP x,1 alias?</a> +</h3> <div class="doc_text"> <p>Quick Answer: They compute the same address location.</p> <p>These two GEP instructions will compute the same address because indexing @@ -355,9 +355,9 @@ idx3 = (char*) &MyVar + 8 <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="vectors"><b>Can GEP index into vector elements?</b></a> -</div> +<h3> + <a name="vectors">Can GEP index into vector elements?</a> +</h3> <div class="doc_text"> <p>This hasn't always been forcefully disallowed, though it's not recommended. It leads to awkward special cases in the optimizers, and fundamental @@ -368,9 +368,9 @@ idx3 = (char*) &MyVar + 8 <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="addrspace"><b>What effect do address spaces have on GEPs?</b></a> -</div> +<h3> + <a name="addrspace">What effect do address spaces have on GEPs?</a> +</h3> <div class="doc_text"> <p>None, except that the address space qualifier on the first operand pointer type always matches the address space qualifier on the result type.</p> @@ -379,10 +379,11 @@ idx3 = (char*) &MyVar + 8 <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="int"><b>How is GEP different from ptrtoint, arithmetic, - and inttoptr?</b></a> -</div> +<h3> + <a name="int"> + How is GEP different from ptrtoint, arithmetic, and inttoptr? + </a> +</h3> <div class="doc_text"> <p>It's very similar; there are only subtle differences.</p> @@ -409,10 +410,12 @@ idx3 = (char*) &MyVar + 8 <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="be"><b>I'm writing a backend for a target which needs custom - lowering for GEP. How do I do this?</b></a> -</div> +<h3> + <a name="be"> + I'm writing a backend for a target which needs custom lowering for GEP. + How do I do this? + </a> +</h3> <div class="doc_text"> <p>You don't. The integer computation implied by a GEP is target-independent. Typically what you'll need to do is make your backend pattern-match @@ -431,9 +434,9 @@ idx3 = (char*) &MyVar + 8 <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="vla"><b>How does VLA addressing work with GEPs?</b></a> -</div> +<h3> + <a name="vla">How does VLA addressing work with GEPs?</a> +</h3> <div class="doc_text"> <p>GEPs don't natively support VLAs. LLVM's type system is entirely static, and GEP address computations are guided by an LLVM type.</p> @@ -451,14 +454,14 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="rules"><b>Rules</b></a></div> +<h2><a name="rules">Rules</a></h2> <!-- *********************************************************************** --> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="bounds"><b>What happens if an array index is out of bounds?</b></a> -</div> +<h3> + <a name="bounds">What happens if an array index is out of bounds?</a> +</h3> <div class="doc_text"> <p>There are two senses in which an array index can be out of bounds.</p> @@ -498,9 +501,9 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="negative"><b>Can array indices be negative?</b></a> -</div> +<h3> + <a name="negative">Can array indices be negative?</a> +</h3> <div class="doc_text"> <p>Yes. This is basically a special case of array indices being out of bounds.</p> @@ -508,9 +511,9 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="compare"><b>Can I compare two values computed with GEPs?</b></a> -</div> +<h3> + <a name="compare">Can I compare two values computed with GEPs?</a> +</h3> <div class="doc_text"> <p>Yes. If both addresses are within the same allocated object, or one-past-the-end, you'll get the comparison result you expect. If either @@ -520,10 +523,12 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="types"><b>Can I do GEP with a different pointer type than the type of - the underlying object?</b></a> -</div> +<h3> + <a name="types"> + Can I do GEP with a different pointer type than the type of + the underlying object? + </a> +</h3> <div class="doc_text"> <p>Yes. There are no restrictions on bitcasting a pointer value to an arbitrary pointer type. The types in a GEP serve only to define the parameters for the @@ -538,10 +543,11 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="null"><b>Can I cast an object's address to integer and add it - to null?</b></a> -</div> +<h3> + <a name="null"> + Can I cast an object's address to integer and add it to null? + </a> +</h3> <div class="doc_text"> <p>You can compute an address that way, but if you use GEP to do the add, you can't use that pointer to actually access the object, unless the @@ -562,10 +568,12 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="ptrdiff"><b>Can I compute the distance between two objects, and add - that value to one address to compute the other address?</b></a> -</div> +<h3> + <a name="ptrdiff"> + Can I compute the distance between two objects, and add + that value to one address to compute the other address? + </a> +</h3> <div class="doc_text"> <p>As with arithmetic on null, You can use GEP to compute an address that way, but you can't use that pointer to actually access the object if you @@ -577,9 +585,9 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="tbaa"><b>Can I do type-based alias analysis on LLVM IR?</b></a> -</div> +<h3> + <a name="tbaa">Can I do type-based alias analysis on LLVM IR?</a> +</h3> <div class="doc_text"> <p>You can't do type-based alias analysis using LLVM's built-in type system, because LLVM has no restrictions on mixing types in addressing, loads or @@ -594,9 +602,9 @@ idx3 = (char*) &MyVar + 8 <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="overflow"><b>What happens if a GEP computation overflows?</b></a> -</div> +<h3> + <a name="overflow">What happens if a GEP computation overflows?</a> +</h3> <div class="doc_text"> <p>If the GEP lacks the <tt>inbounds</tt> keyword, the value is the result from evaluating the implied two's complement integer computation. However, @@ -624,10 +632,11 @@ idx3 = (char*) &MyVar + 8 <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="check"><b>How can I tell if my front-end is following the - rules?</b></a> -</div> +<h3> + <a name="check"> + How can I tell if my front-end is following the rules? + </a> +</h3> <div class="doc_text"> <p>There is currently no checker for the getelementptr rules. Currently, the only way to do this is to manually check each place in your front-end @@ -642,14 +651,14 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="rationale"><b>Rationale</b></a></div> +<h2><a name="rationale">Rationale</a></h2> <!-- *********************************************************************** --> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="goals"><b>Why is GEP designed this way?</b></a> -</div> +<h3> + <a name="goals">Why is GEP designed this way?</a> +</h3> <div class="doc_text"> <p>The design of GEP has the following goals, in rough unofficial order of priority:</p> @@ -669,9 +678,9 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="i32"><b>Why do struct member indices always use i32?</b></a> -</div> +<h3> + <a name="i32">Why do struct member indices always use i32?</a> +</h3> <div class="doc_text"> <p>The specific type i32 is probably just a historical artifact, however it's wide enough for all practical purposes, so there's been no need to change it. @@ -684,9 +693,9 @@ idx3 = (char*) &MyVar + 8 <!-- *********************************************************************** --> -<div class="doc_subsection"> - <a name="uglygep"><b>What's an uglygep?</b></a> -</div> +<h3> + <a name="uglygep">What's an uglygep?</a> +</h3> <div class="doc_text"> <p>Some LLVM optimizers operate on GEPs by internally lowering them into more primitive integer expressions, which allows them to be combined @@ -705,7 +714,7 @@ idx3 = (char*) &MyVar + 8 </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="summary"><b>Summary</b></a></div> +<h2><a name="summary">Summary</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html index d670611..2bca7ae 100644 --- a/docs/GettingStarted.html +++ b/docs/GettingStarted.html @@ -8,9 +8,9 @@ </head> <body> -<div class="doc_title"> +<h1> Getting Started with the LLVM System -</div> +</h1> <ul> <li><a href="#overview">Overview</a> @@ -70,9 +70,9 @@ <!-- *********************************************************************** --> -<div class="doc_section"> - <a name="overview"><b>Overview</b></a> -</div> +<h2> + <a name="overview">Overview</a> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -102,9 +102,9 @@ and performance. </div> <!-- *********************************************************************** --> -<div class="doc_section"> - <a name="quickstart"><b>Getting Started Quickly (A Summary)</b></a> -</div> +<h2> + <a name="quickstart">Getting Started Quickly (A Summary)</a> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -191,9 +191,9 @@ Layout</a> to learn about the layout of the source code tree.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> - <a name="requirements"><b>Requirements</b></a> -</div> +<h2> + <a name="requirements">Requirements</a> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -205,9 +205,9 @@ software you will need.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> - <a name="hardware"><b>Hardware</b></a> -</div> +<h3> + <a name="hardware">Hardware</a> +</h3> <div class="doc_text"> @@ -370,7 +370,9 @@ href="GCCFEBuildInstrs.html">try to compile it</a> on your platform.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="software"><b>Software</b></a></div> +<h3> + <a name="software">Software</a> +</h3> <div class="doc_text"> <p>Compiling LLVM requires that you have several software packages installed. The table below lists those required packages. The Package column @@ -508,9 +510,9 @@ href="GCCFEBuildInstrs.html">try to compile it</a> on your platform.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="brokengcc">Broken versions of GCC and other tools</a> -</div> +</h3> <div class="doc_text"> @@ -608,9 +610,9 @@ upgrading to a newer version of Gold.</p> <!-- *********************************************************************** --> -<div class="doc_section"> - <a name="starting"><b>Getting Started with LLVM</b></a> -</div> +<h2> + <a name="starting">Getting Started with LLVM</a> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -626,9 +628,9 @@ help via e-mail.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="terminology">Terminology and Notation</a> -</div> +</h3> <div class="doc_text"> @@ -663,9 +665,9 @@ All these paths are absolute:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="environment">Setting Up Your Environment</a> -</div> +</h3> <div class="doc_text"> @@ -686,9 +688,9 @@ variables. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="unpack">Unpacking the LLVM Archives</a> -</div> +</h3> <div class="doc_text"> @@ -720,9 +722,9 @@ compressed with the gzip program. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="checkout">Checkout LLVM from Subversion</a> -</div> +</h3> <div class="doc_text"> @@ -791,9 +793,9 @@ instructions</a> to successfully get and build the LLVM GCC front-end.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="git_mirror">GIT mirror</a> -</div> +</h3> <div class="doc_text"> @@ -810,9 +812,9 @@ instructions</a> to successfully get and build the LLVM GCC front-end.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="installcf">Install the GCC Front End</a> -</div> +</h3> <div class="doc_text"> @@ -880,9 +882,9 @@ please let us know how you would like to see things improved by dropping us a no </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="config">Local LLVM Configuration</a> -</div> +</h3> <div class="doc_text"> @@ -1002,9 +1004,9 @@ script to configure the build system:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="compile">Compiling the LLVM Suite Source Code</a> -</div> +</h3> <div class="doc_text"> @@ -1136,9 +1138,9 @@ that directory that is out of date.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="cross-compile">Cross-Compiling LLVM</a> -</div> +</h3> <div class="doc_text"> <p>It is possible to cross-compile LLVM itself. That is, you can create LLVM @@ -1154,9 +1156,9 @@ that directory that is out of date.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="objfiles">The Location of LLVM Object Files</a> -</div> +</h3> <div class="doc_text"> @@ -1214,9 +1216,9 @@ named after the build type:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="optionalconfig">Optional Configuration Items</a> -</div> +</h3> <div class="doc_text"> @@ -1250,9 +1252,9 @@ $ sudo update-binfmts --install llvm /path/to/lli --magic 'BC' </div> <!-- *********************************************************************** --> -<div class="doc_section"> - <a name="layout"><b>Program Layout</b></a> -</div> +<h2> + <a name="layout">Program Layout</a> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1265,14 +1267,20 @@ The following is a brief introduction to code layout:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="examples"><tt>llvm/examples</tt></a></div> +<h3> + <a name="examples"><tt>llvm/examples</tt></a> +</h3> + <div class="doc_text"> <p>This directory contains some simple examples of how to use the LLVM IR and JIT.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="include"><tt>llvm/include</tt></a></div> +<h3> + <a name="include"><tt>llvm/include</tt></a> +</h3> + <div class="doc_text"> <p>This directory contains public header files exported from the LLVM @@ -1300,7 +1308,10 @@ library. The three main subdirectories of this directory are:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="lib"><tt>llvm/lib</tt></a></div> +<h3> + <a name="lib"><tt>llvm/lib</tt></a> +</h3> + <div class="doc_text"> <p>This directory contains most of the source files of the LLVM system. In LLVM, @@ -1366,7 +1377,10 @@ different <a href="#tools">tools</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="projects"><tt>llvm/projects</tt></a></div> +<h3> + <a name="projects"><tt>llvm/projects</tt></a> +</h3> + <div class="doc_text"> <p>This directory contains projects that are not strictly part of LLVM but are shipped with LLVM. This is also the directory where you should create your own @@ -1375,7 +1389,10 @@ different <a href="#tools">tools</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="runtime"><tt>llvm/runtime</tt></a></div> +<h3> + <a name="runtime"><tt>llvm/runtime</tt></a> +</h3> + <div class="doc_text"> <p>This directory contains libraries which are compiled into LLVM bitcode and @@ -1389,7 +1406,10 @@ end to compile.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="test"><tt>llvm/test</tt></a></div> +<h3> + <a name="test"><tt>llvm/test</tt></a> +</h3> + <div class="doc_text"> <p>This directory contains feature and regression tests and other basic sanity checks on the LLVM infrastructure. These are intended to run quickly and cover @@ -1397,7 +1417,10 @@ end to compile.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="test-suite"><tt>test-suite</tt></a></div> +<h3> + <a name="test-suite"><tt>test-suite</tt></a> +</h3> + <div class="doc_text"> <p>This is not a directory in the normal llvm module; it is a separate Subversion @@ -1413,7 +1436,10 @@ end to compile.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="tools"><tt>llvm/tools</tt></a></div> +<h3> + <a name="tools"><tt>llvm/tools</tt></a> +</h3> + <div class="doc_text"> <p>The <b>tools</b> directory contains the executables built out of the @@ -1498,7 +1524,10 @@ information is in the <a href="CommandGuide/index.html">Command Guide</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="utils"><tt>llvm/utils</tt></a></div> +<h3> + <a name="utils"><tt>llvm/utils</tt></a> +</h3> + <div class="doc_text"> <p>This directory contains utilities for working with LLVM source code, and some @@ -1561,9 +1590,9 @@ are code generators for parts of LLVM infrastructure.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="tutorial">An Example Using the LLVM Tool Chain</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1580,7 +1609,9 @@ output.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="tutorial4">Example with llvm-gcc4</a></div> +<h3> + <a name="tutorial4">Example with llvm-gcc4</a> +</h3> <div class="doc_text"> @@ -1665,9 +1696,9 @@ int main() { <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="problems">Common Problems</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1679,9 +1710,9 @@ Asked Questions</a> page.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="links">Links</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/GettingStartedVS.html b/docs/GettingStartedVS.html index 113ba49..469b537 100644 --- a/docs/GettingStartedVS.html +++ b/docs/GettingStartedVS.html @@ -8,9 +8,9 @@ </head> <body> -<div class="doc_title"> +<h1> Getting Started with the LLVM System using Microsoft Visual Studio -</div> +</h1> <ul> <li><a href="#overview">Overview</a> @@ -31,9 +31,9 @@ <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="overview"><b>Overview</b></a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -70,9 +70,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="requirements"><b>Requirements</b></a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -84,9 +84,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="hardware"><b>Hardware</b></a> -</div> +</h3> <div class="doc_text"> @@ -97,7 +97,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="software"><b>Software</b></a></div> +<h3><a name="software"><b>Software</b></a></h3> <div class="doc_text"> <p>You will need Visual Studio .NET 2005 SP1 or higher. The VS2005 SP1 @@ -119,9 +119,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="quickstart"><b>Getting Started</b></a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -229,9 +229,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="tutorial">An Example Using the LLVM Tool Chain</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -319,9 +319,9 @@ int main() { </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="problems">Common Problems</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -333,9 +333,9 @@ Asked Questions</a> page.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="links">Links</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/GoldPlugin.html b/docs/GoldPlugin.html index 051d8a4..7ba1186 100644 --- a/docs/GoldPlugin.html +++ b/docs/GoldPlugin.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">LLVM gold plugin</div> +<h1>LLVM gold plugin</h1> <ol> <li><a href="#introduction">Introduction</a></li> <li><a href="#build">How to build it</a></li> @@ -21,7 +21,7 @@ <div class="doc_author">Written by Nick Lewycky</div> <!--=========================================================================--> -<div class="doc_section"><a name="introduction">Introduction</a></div> +<h2><a name="introduction">Introduction</a></h2> <!--=========================================================================--> <div class="doc_text"> <p>Building with link time optimization requires cooperation from the @@ -38,7 +38,7 @@ The same plugin can also be used by other tools such as <tt>ar</tt> and <tt>nm</tt>. </div> <!--=========================================================================--> -<div class="doc_section"><a name="build">How to build it</a></div> +<h2><a name="build">How to build it</a></h2> <!--=========================================================================--> <div class="doc_text"> <p>You need to have gold with plugin support and build the LLVMgold @@ -72,7 +72,7 @@ placed. </ul> </div> <!--=========================================================================--> -<div class="doc_section"><a name="usage">Usage</a></div> +<h2><a name="usage">Usage</a></h2> <!--=========================================================================--> <div class="doc_text"> <p>The linker takes a <tt>-plugin</tt> option that points to the path of @@ -98,9 +98,9 @@ placed. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="example1">Example of link time optimization</a> -</div> +</h3> <div class="doc_text"> <p>The following example shows a worked example of the gold plugin mixing @@ -150,7 +150,11 @@ $ llvm-gcc -use-gold-plugin a.a b.o -o main # <-- link with LLVMgold plugin </div> <!--=========================================================================--> -<div class="doc_section"><a name="lto_autotools">Quickstart for using LTO with autotooled projects</a></div> +<h2> + <a name="lto_autotools"> + Quickstart for using LTO with autotooled projects + </a> +</h2> <!--=========================================================================--> <div class="doc_text"> <p>Once your system <tt>ld</tt>, <tt>ar</tt> and <tt>nm</tt> all support LLVM @@ -189,7 +193,7 @@ export CFLAGS="-O4" </div> <!--=========================================================================--> -<div class="doc_section"><a name="licensing">Licensing</a></div> +<h2><a name="licensing">Licensing</a></h2> <!--=========================================================================--> <div class="doc_text"> <p>Gold is licensed under the GPLv3. LLVMgold uses the interface file diff --git a/docs/HowToReleaseLLVM.html b/docs/HowToReleaseLLVM.html index 85398d4..59e7864 100644 --- a/docs/HowToReleaseLLVM.html +++ b/docs/HowToReleaseLLVM.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">How To Release LLVM To The Public</div> +<h1>How To Release LLVM To The Public</h1> <ol> <li><a href="#introduction">Introduction</a></li> <li><a href="#criteria">Qualification Criteria</a></li> @@ -23,7 +23,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="introduction">Introduction</a></div> +<h2><a name="introduction">Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -36,7 +36,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="process">Release Timeline</a></div> +<h2><a name="process">Release Timeline</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -76,7 +76,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="process">Release Process</a></div> +<h2><a name="process">Release Process</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -122,7 +122,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-admin">Release Administrative Tasks</a></div> +<h3><a name="release-admin">Release Administrative Tasks</a></h3> <div class="doc_text"> @@ -138,7 +138,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="branch">Create Release Branch</a></div> +<h4><a name="branch">Create Release Branch</a></h4> <div class="doc_text"> @@ -198,7 +198,7 @@ $ svn co https://llvm.org/svn/llvm-project/cfe/branches/release_<i>XY</i> clang- </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="verchanges">Update LLVM Version</a></div> +<h4><a name="verchanges">Update LLVM Version</a></h4> <div class="doc_text"> @@ -214,7 +214,7 @@ $ svn co https://llvm.org/svn/llvm-project/cfe/branches/release_<i>XY</i> clang- </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="dist">Build the LLVM Release Candidates</a></div> +<h4><a name="dist">Build the LLVM Release Candidates</a></h4> <div class="doc_text"> @@ -269,7 +269,7 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-build">Building the Release</a></div> +<h3><a name="release-build">Building the Release</a></h3> <div class="doc_text"> @@ -290,7 +290,7 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="build">Build LLVM</a></div> +<h4><a name="build">Build LLVM</a></h4> <div class="doc_text"> @@ -302,7 +302,7 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="llvmgccbin">Build the LLVM GCC Binary Distribution</a></div> +<h4><a name="llvmgccbin">Build the LLVM GCC Binary Distribution</a></h4> <div class="doc_text"> @@ -329,7 +329,7 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="clangbin">Build Clang Binary Distribution</a></div> +<h4><a name="clangbin">Build Clang Binary Distribution</a></h4> <div class="doc_text"> @@ -350,7 +350,7 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="target-build">Target Specific Build Details</a></div> +<h4><a name="target-build">Target Specific Build Details</a></h4> <div class="doc_text"> @@ -372,8 +372,7 @@ $ tar -cvf - clang-<i>X.Y</i>rc1 | gzip > clang-<i>X.Y</i>rc1.src.tar.g </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-qualify"> -Building the Release</a></div> +<h3><a name="release-qualify">Building the Release</a></h3> <div class="doc_text"> @@ -394,7 +393,7 @@ Building the Release</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="llvm-qualify">Qualify LLVM</a></div> +<h4><a name="llvm-qualify">Qualify LLVM</a></h4> <div class="doc_text"> @@ -405,7 +404,7 @@ Building the Release</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="llvmgcc-qualify">Qualify LLVM-GCC</a></div> +<h4><a name="llvmgcc-qualify">Qualify LLVM-GCC</a></h4> <div class="doc_text"> @@ -418,7 +417,7 @@ Building the Release</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="clang-qualify">Qualify Clang</a></div> +<h4><a name="clang-qualify">Qualify Clang</a></h4> <div class="doc_text"> @@ -429,8 +428,7 @@ Building the Release</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="targets">Specific Target -Qualification Details</a></div> +<h4><a name="targets">Specific Target Qualification Details</a></h4> <div class="doc_text"> @@ -447,7 +445,7 @@ Qualification Details</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="commTest">Community Testing</a></div> +<h3><a name="commTest">Community Testing</a></h3> <div class="doc_text"> <p>Once all testing has been completed and appropriate bugs filed, the release @@ -484,7 +482,7 @@ Qualification Details</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-patch">Release Patch Rules</a></div> +<h3><a name="release-patch">Release Patch Rules</a></h3> <div class="doc_text"> @@ -508,8 +506,7 @@ Qualification Details</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="release-final">Release Final Tasks -</a></div> +<h3><a name="release-final">Release Final Tasks</a></h3> <div class="doc_text"> @@ -521,7 +518,7 @@ Qualification Details</a></div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="updocs">Update Documentation</a></div> +<h4><a name="updocs">Update Documentation</a></h4> <div class="doc_text"> @@ -535,7 +532,7 @@ Qualification Details</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="tag">Tag the LLVM Final Release</a></div> +<h4><a name="tag">Tag the LLVM Final Release</a></h4> <div class="doc_text"> @@ -560,7 +557,7 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="updemo">Update the LLVM Demo Page</a></div> +<h3><a name="updemo">Update the LLVM Demo Page</a></h3> <div class="doc_text"> @@ -570,7 +567,7 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="webupdates">Update the LLVM Website</a></div> +<h4><a name="webupdates">Update the LLVM Website</a></h4> <div class="doc_text"> @@ -606,7 +603,7 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="announce">Announce the Release</a></div> +<h4><a name="announce">Announce the Release</a></h4> <div class="doc_text"> diff --git a/docs/HowToSubmitABug.html b/docs/HowToSubmitABug.html index b9d8362..ca34384 100644 --- a/docs/HowToSubmitABug.html +++ b/docs/HowToSubmitABug.html @@ -7,9 +7,9 @@ </head> <body> -<div class="doc_title"> +<h1> How to submit an LLVM bug report -</div> +</h1> <table class="layout" style="width: 90%" > <tr class="layout"> @@ -37,9 +37,9 @@ </table> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction - Got bugs?</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -76,9 +76,9 @@ information:</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="crashers">Crashing Bugs</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -112,9 +112,9 @@ with the following extra command line options:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="front-end">Front-end bugs</a> -</div> +</h3> <div class="doc_text"> @@ -137,9 +137,9 @@ has instructions on the best way to use delta.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ct_optimizer">Compile-time optimization bugs</a> -</div> +</h3> <div class="doc_text"> @@ -171,9 +171,9 @@ that bugpoint emits. If something goes wrong with bugpoint, please submit the </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ct_codegen">Code generator bugs</a> -</div> +</h3> <div class="doc_text"> @@ -208,9 +208,9 @@ that bugpoint emits. If something goes wrong with bugpoint, please submit the </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="miscompilations">Miscompilations</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -241,9 +241,9 @@ error.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="codegen">Incorrect code generation</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/LangRef.html b/docs/LangRef.html index 8c5ba80..69e0a75 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title"> LLVM Language Reference Manual </div> +<h1>LLVM Language Reference Manual</h1> <ol> <li><a href="#abstract">Abstract</a></li> <li><a href="#introduction">Introduction</a></li> @@ -321,7 +321,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="abstract">Abstract </a></div> +<h2><a name="abstract">Abstract</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -335,7 +335,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="introduction">Introduction</a> </div> +<h2><a name="introduction">Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -362,7 +362,9 @@ </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="wellformed">Well-Formedness</a> </div> +<h4> + <a name="wellformed">Well-Formedness</a> +</h4> <div class="doc_text"> @@ -387,7 +389,7 @@ <!-- Describe the typesetting conventions here. --> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="identifiers">Identifiers</a> </div> +<h2><a name="identifiers">Identifiers</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -475,12 +477,13 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="highlevel">High Level Structure</a> </div> +<h2><a name="highlevel">High Level Structure</a></h2> <!-- *********************************************************************** --> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="modulestructure">Module Structure</a> -</div> +<h3> + <a name="modulestructure">Module Structure</a> +</h3> <div class="doc_text"> @@ -528,9 +531,9 @@ define i32 @main() { <i>; i32()* </i> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="linkage">Linkage Types</a> -</div> +</h3> <div class="doc_text"> @@ -677,9 +680,9 @@ define i32 @main() { <i>; i32()* </i> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="callingconv">Calling Conventions</a> -</div> +</h3> <div class="doc_text"> @@ -750,9 +753,9 @@ define i32 @main() { <i>; i32()* </i> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="visibility">Visibility Styles</a> -</div> +</h3> <div class="doc_text"> @@ -784,9 +787,9 @@ define i32 @main() { <i>; i32()* </i> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="namedtypes">Named Types</a> -</div> +</h3> <div class="doc_text"> @@ -815,9 +818,9 @@ define i32 @main() { <i>; i32()* </i> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="globalvars">Global Variables</a> -</div> +</h3> <div class="doc_text"> @@ -883,9 +886,9 @@ define i32 @main() { <i>; i32()* </i> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="functionstructure">Functions</a> -</div> +</h3> <div class="doc_text"> @@ -946,9 +949,9 @@ define [<a href="#linkage">linkage</a>] [<a href="#visibility">visibility</a>] </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="aliasstructure">Aliases</a> -</div> +</h3> <div class="doc_text"> @@ -965,9 +968,9 @@ define [<a href="#linkage">linkage</a>] [<a href="#visibility">visibility</a>] </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="namedmetadatastructure">Named Metadata</a> -</div> +</h3> <div class="doc_text"> @@ -988,7 +991,9 @@ define [<a href="#linkage">linkage</a>] [<a href="#visibility">visibility</a>] </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="paramattrs">Parameter Attributes</a></div> +<h3> + <a name="paramattrs">Parameter Attributes</a> +</h3> <div class="doc_text"> @@ -1097,9 +1102,9 @@ declare signext i8 @returns_signed_char() </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="gc">Garbage Collector Names</a> -</div> +</h3> <div class="doc_text"> @@ -1117,9 +1122,9 @@ define void @f() gc "name" { ... } </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="fnattrs">Function Attributes</a> -</div> +</h3> <div class="doc_text"> @@ -1240,9 +1245,9 @@ define void @f() optsize { ... } </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="moduleasm">Module-Level Inline Assembly</a> -</div> +</h3> <div class="doc_text"> @@ -1266,9 +1271,9 @@ module asm "more can go here" </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="datalayout">Data Layout</a> -</div> +</h3> <div class="doc_text"> @@ -1378,9 +1383,9 @@ target datalayout = "<i>layout specification</i>" </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="pointeraliasing">Pointer Aliasing Rules</a> -</div> +</h3> <div class="doc_text"> @@ -1442,9 +1447,9 @@ to implement type-based alias analysis.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="volatile">Volatile Memory Accesses</a> -</div> +</h3> <div class="doc_text"> @@ -1460,7 +1465,7 @@ synchronization behavior.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="typesystem">Type System</a> </div> +<h2><a name="typesystem">Type System</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1476,8 +1481,9 @@ synchronization behavior.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="t_classifications">Type -Classifications</a> </div> +<h3> + <a name="t_classifications">Type Classifications</a> +</h3> <div class="doc_text"> @@ -1536,7 +1542,9 @@ Classifications</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="t_primitive">Primitive Types</a> </div> +<h3> + <a name="t_primitive">Primitive Types</a> +</h3> <div class="doc_text"> @@ -1546,7 +1554,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_integer">Integer Type</a> </div> +<h4> + <a name="t_integer">Integer Type</a> +</h4> <div class="doc_text"> @@ -1582,7 +1592,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_floating">Floating Point Types</a> </div> +<h4> + <a name="t_floating">Floating Point Types</a> +</h4> <div class="doc_text"> @@ -1600,7 +1612,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_x86mmx">X86mmx Type</a> </div> +<h4> + <a name="t_x86mmx">X86mmx Type</a> +</h4> <div class="doc_text"> @@ -1615,7 +1629,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_void">Void Type</a> </div> +<h4> + <a name="t_void">Void Type</a> +</h4> <div class="doc_text"> @@ -1630,7 +1646,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_label">Label Type</a> </div> +<h4> + <a name="t_label">Label Type</a> +</h4> <div class="doc_text"> @@ -1645,7 +1663,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_metadata">Metadata Type</a> </div> +<h4> + <a name="t_metadata">Metadata Type</a> +</h4> <div class="doc_text"> @@ -1663,7 +1683,9 @@ Classifications</a> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="t_derived">Derived Types</a> </div> +<h3> + <a name="t_derived">Derived Types</a> +</h3> <div class="doc_text"> @@ -1678,7 +1700,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_aggregate">Aggregate Types</a> </div> +<h4> + <a name="t_aggregate">Aggregate Types</a> +</h4> <div class="doc_text"> @@ -1690,7 +1714,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_array">Array Type</a> </div> +<h4> + <a name="t_array">Array Type</a> +</h4> <div class="doc_text"> @@ -1748,7 +1774,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_function">Function Type</a> </div> +<h4> + <a name="t_function">Function Type</a> +</h4> <div class="doc_text"> @@ -1801,7 +1829,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_struct">Structure Type</a> </div> +<h4> + <a name="t_struct">Structure Type</a> +</h4> <div class="doc_text"> @@ -1839,8 +1869,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_pstruct">Packed Structure Type</a> -</div> +<h4> + <a name="t_pstruct">Packed Structure Type</a> +</h4> <div class="doc_text"> @@ -1877,7 +1908,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_pointer">Pointer Type</a> </div> +<h4> + <a name="t_pointer">Pointer Type</a> +</h4> <div class="doc_text"> @@ -1921,7 +1954,9 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_vector">Vector Type</a> </div> +<h4> + <a name="t_vector">Vector Type</a> +</h4> <div class="doc_text"> @@ -1960,7 +1995,10 @@ Classifications</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="t_opaque">Opaque Type</a> </div> +<h4> + <a name="t_opaque">Opaque Type</a> +</h4> + <div class="doc_text"> <h5>Overview:</h5> @@ -1985,9 +2023,9 @@ Classifications</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="t_uprefs">Type Up-references</a> -</div> +</h3> <div class="doc_text"> @@ -2033,7 +2071,7 @@ Classifications</a> </div> </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="constants">Constants</a> </div> +<h2><a name="constants">Constants</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -2044,7 +2082,9 @@ Classifications</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="simpleconstants">Simple Constants</a></div> +<h3> + <a name="simpleconstants">Simple Constants</a> +</h3> <div class="doc_text"> @@ -2099,10 +2139,10 @@ Classifications</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="aggregateconstants"></a> <!-- old anchor --> <a name="complexconstants">Complex Constants</a> -</div> +</h3> <div class="doc_text"> @@ -2154,9 +2194,9 @@ Classifications</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="globalconstants">Global Variable and Function Addresses</a> -</div> +</h3> <div class="doc_text"> @@ -2176,7 +2216,10 @@ Classifications</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="undefvalues">Undefined Values</a></div> +<h3> + <a name="undefvalues">Undefined Values</a> +</h3> + <div class="doc_text"> <p>The string '<tt>undef</tt>' can be used anywhere a constant is expected, and @@ -2316,7 +2359,10 @@ b: unreachable </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="trapvalues">Trap Values</a></div> +<h3> + <a name="trapvalues">Trap Values</a> +</h3> + <div class="doc_text"> <p>Trap values are similar to <a href="#undefvalues">undef values</a>, however @@ -2441,8 +2487,10 @@ second_end: </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="blockaddress">Addresses of Basic - Blocks</a></div> +<h3> + <a name="blockaddress">Addresses of Basic Blocks</a> +</h3> + <div class="doc_text"> <p><b><tt>blockaddress(@function, %block)</tt></b></p> @@ -2468,8 +2516,9 @@ second_end: <!-- ======================================================================= --> -<div class="doc_subsection"><a name="constantexprs">Constant Expressions</a> -</div> +<h3> + <a name="constantexprs">Constant Expressions</a> +</h3> <div class="doc_text"> @@ -2598,13 +2647,13 @@ second_end: </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="othervalues">Other Values</a> </div> +<h2><a name="othervalues">Other Values</a></h2> <!-- *********************************************************************** --> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="inlineasm">Inline Assembler Expressions</a> -</div> +</h3> <div class="doc_text"> @@ -2657,9 +2706,9 @@ call void asm alignstack "eieio", ""() another document that covers inline asm from a holistic perspective.</p> </div> -<div class="doc_subsubsection"> +<h4> <a name="inlineasm_md">Inline Asm Metadata</a> -</div> +</h4> <div class="doc_text"> @@ -2683,9 +2732,9 @@ call void asm sideeffect "something bad", ""()<b>, !srcloc !42</b> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="metadata">Metadata Nodes and Metadata - Strings</a> -</div> +<h3> + <a name="metadata">Metadata Nodes and Metadata Strings</a> +</h3> <div class="doc_text"> @@ -2731,9 +2780,9 @@ call void @llvm.dbg.value(metadata !24, i64 0, metadata !25) <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="intrinsic_globals">Intrinsic Global Variables</a> -</div> +</h2> <!-- *********************************************************************** --> <p>LLVM has a number of "magic" global variables that contain data that affect @@ -2743,9 +2792,9 @@ section and all globals that start with "<tt>llvm.</tt>" are reserved for use by LLVM.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="intg_used">The '<tt>llvm.used</tt>' Global Variable</a> -</div> +</h3> <div class="doc_text"> @@ -2778,9 +2827,11 @@ object file to prevent the assembler and linker from molesting the symbol.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> -<a name="intg_compiler_used">The '<tt>llvm.compiler.used</tt>' Global Variable</a> -</div> +<h3> + <a name="intg_compiler_used"> + The '<tt>llvm.compiler.used</tt>' Global Variable + </a> +</h3> <div class="doc_text"> @@ -2796,9 +2847,9 @@ should not be exposed to source languages.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="intg_global_ctors">The '<tt>llvm.global_ctors</tt>' Global Variable</a> -</div> +</h3> <div class="doc_text"> <pre> @@ -2811,9 +2862,9 @@ should not be exposed to source languages.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="intg_global_dtors">The '<tt>llvm.global_dtors</tt>' Global Variable</a> -</div> +</h3> <div class="doc_text"> <pre> @@ -2828,7 +2879,7 @@ should not be exposed to source languages.</p> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="instref">Instruction Reference</a> </div> +<h2><a name="instref">Instruction Reference</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -2843,8 +2894,9 @@ should not be exposed to source languages.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="terminators">Terminator -Instructions</a> </div> +<h3> + <a name="terminators">Terminator Instructions</a> +</h3> <div class="doc_text"> @@ -2867,8 +2919,9 @@ Instructions</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_ret">'<tt>ret</tt>' -Instruction</a> </div> +<h4> + <a name="i_ret">'<tt>ret</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -2916,7 +2969,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_br">'<tt>br</tt>' Instruction</a> </div> +<h4> + <a name="i_br">'<tt>br</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -2957,9 +3012,9 @@ IfUnequal: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_switch">'<tt>switch</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3012,9 +3067,9 @@ IfUnequal: <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_indirectbr">'<tt>indirectbr</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3060,9 +3115,9 @@ IfUnequal: <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_invoke">'<tt>invoke</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3150,8 +3205,9 @@ that the invoke/unwind semantics are likely to change in future versions.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_unwind">'<tt>unwind</tt>' -Instruction</a> </div> +<h4> + <a name="i_unwind">'<tt>unwind</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3181,8 +3237,9 @@ that the invoke/unwind semantics are likely to change in future versions.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_unreachable">'<tt>unreachable</tt>' -Instruction</a> </div> +<h4> + <a name="i_unreachable">'<tt>unreachable</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3203,7 +3260,9 @@ Instruction</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="binaryops">Binary Operations</a> </div> +<h3> + <a name="binaryops">Binary Operations</a> +</h3> <div class="doc_text"> @@ -3218,9 +3277,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_add">'<tt>add</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3263,9 +3322,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_fadd">'<tt>fadd</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3293,9 +3352,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_sub">'<tt>sub</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3345,9 +3404,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_fsub">'<tt>fsub</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3381,9 +3440,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_mul">'<tt>mul</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3431,9 +3490,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_fmul">'<tt>fmul</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3461,8 +3520,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_udiv">'<tt>udiv</tt>' Instruction -</a></div> +<h4> + <a name="i_udiv">'<tt>udiv</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3501,8 +3561,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_sdiv">'<tt>sdiv</tt>' Instruction -</a> </div> +<h4> + <a name="i_sdiv">'<tt>sdiv</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3543,8 +3604,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_fdiv">'<tt>fdiv</tt>' -Instruction</a> </div> +<h4> + <a name="i_fdiv">'<tt>fdiv</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3572,8 +3634,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_urem">'<tt>urem</tt>' Instruction</a> -</div> +<h4> + <a name="i_urem">'<tt>urem</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3609,9 +3672,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_srem">'<tt>srem</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -3660,8 +3723,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="i_frem">'<tt>frem</tt>' Instruction</a> </div> +<h4> + <a name="i_frem">'<tt>frem</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3691,8 +3755,9 @@ Instruction</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="bitwiseops">Bitwise Binary -Operations</a> </div> +<h3> + <a name="bitwiseops">Bitwise Binary Operations</a> +</h3> <div class="doc_text"> @@ -3705,8 +3770,9 @@ Operations</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_shl">'<tt>shl</tt>' -Instruction</a> </div> +<h4> + <a name="i_shl">'<tt>shl</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3755,8 +3821,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_lshr">'<tt>lshr</tt>' -Instruction</a> </div> +<h4> + <a name="i_lshr">'<tt>lshr</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3801,8 +3868,10 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_ashr">'<tt>ashr</tt>' -Instruction</a> </div> +<h4> + <a name="i_ashr">'<tt>ashr</tt>' Instruction</a> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -3846,8 +3915,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_and">'<tt>and</tt>' -Instruction</a> </div> +<h4> + <a name="i_and">'<tt>and</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3906,7 +3976,9 @@ Instruction</a> </div> </pre> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_or">'<tt>or</tt>' Instruction</a> </div> +<h4> + <a name="i_or">'<tt>or</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -3967,8 +4039,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_xor">'<tt>xor</tt>' -Instruction</a> </div> +<h4> + <a name="i_xor">'<tt>xor</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -4031,9 +4104,9 @@ Instruction</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="vectorops">Vector Operations</a> -</div> +</h3> <div class="doc_text"> @@ -4047,9 +4120,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_extractelement">'<tt>extractelement</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -4083,9 +4156,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_insertelement">'<tt>insertelement</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -4119,9 +4192,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_shufflevector">'<tt>shufflevector</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -4167,9 +4240,9 @@ Instruction</a> </div> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="aggregateops">Aggregate Operations</a> -</div> +</h3> <div class="doc_text"> @@ -4179,9 +4252,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_extractvalue">'<tt>extractvalue</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -4221,9 +4294,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_insertvalue">'<tt>insertvalue</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -4261,9 +4334,9 @@ Instruction</a> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="memoryops">Memory Access and Addressing Operations</a> -</div> +</h3> <div class="doc_text"> @@ -4275,9 +4348,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_alloca">'<tt>alloca</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -4326,8 +4399,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_load">'<tt>load</tt>' -Instruction</a> </div> +<h4> + <a name="i_load">'<tt>load</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -4384,8 +4458,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> <a name="i_store">'<tt>store</tt>' -Instruction</a> </div> +<h4> + <a name="i_store">'<tt>store</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -4445,9 +4520,9 @@ Instruction</a> </div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_getelementptr">'<tt>getelementptr</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -4576,8 +4651,9 @@ entry: </div> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="convertops">Conversion Operations</a> -</div> +<h3> + <a name="convertops">Conversion Operations</a> +</h3> <div class="doc_text"> @@ -4588,9 +4664,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_trunc">'<tt>trunc .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4627,9 +4704,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_zext">'<tt>zext .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4666,9 +4744,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_sext">'<tt>sext .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4704,9 +4783,9 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_fptrunc">'<tt>fptrunc .. to</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -4742,9 +4821,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_fpext">'<tt>fpext .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4778,9 +4858,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_fptoui">'<tt>fptoui .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4815,9 +4896,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_fptosi">'<tt>fptosi .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4853,9 +4935,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_uitofp">'<tt>uitofp .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4889,9 +4972,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_sitofp">'<tt>sitofp .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4924,9 +5008,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_ptrtoint">'<tt>ptrtoint .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4961,9 +5046,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_inttoptr">'<tt>inttoptr .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -4998,9 +5084,10 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_bitcast">'<tt>bitcast .. to</tt>' Instruction</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -5041,7 +5128,9 @@ entry: </div> <!-- ======================================================================= --> -<div class="doc_subsection"> <a name="otherops">Other Operations</a> </div> +<h3> + <a name="otherops">Other Operations</a> +</h3> <div class="doc_text"> @@ -5051,8 +5140,9 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="i_icmp">'<tt>icmp</tt>' Instruction</a> -</div> +<h4> + <a name="i_icmp">'<tt>icmp</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -5153,8 +5243,9 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a name="i_fcmp">'<tt>fcmp</tt>' Instruction</a> -</div> +<h4> + <a name="i_fcmp">'<tt>fcmp</tt>' Instruction</a> +</h4> <div class="doc_text"> @@ -5273,9 +5364,9 @@ entry: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_phi">'<tt>phi</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -5321,9 +5412,9 @@ Loop: ; Infinite loop that counts from 0 on up... </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_select">'<tt>select</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -5364,9 +5455,9 @@ Loop: ; Infinite loop that counts from 0 on up... </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_call">'<tt>call</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -5473,9 +5564,9 @@ freestanding environments and non-C-based languages.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="i_va_arg">'<tt>va_arg</tt>' Instruction</a> -</div> +</h4> <div class="doc_text"> @@ -5519,7 +5610,7 @@ freestanding environments and non-C-based languages.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> <a name="intrinsics">Intrinsic Functions</a> </div> +<h2><a name="intrinsics">Intrinsic Functions</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -5568,9 +5659,9 @@ freestanding environments and non-C-based languages.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_varargs">Variable Argument Handling Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -5617,9 +5708,9 @@ declare void @llvm.va_end(i8*) </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_va_start">'<tt>llvm.va_start</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5648,9 +5739,9 @@ declare void @llvm.va_end(i8*) </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_va_end">'<tt>llvm.va_end</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5679,9 +5770,9 @@ declare void @llvm.va_end(i8*) </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_va_copy">'<tt>llvm.va_copy</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5710,9 +5801,9 @@ declare void @llvm.va_end(i8*) </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_gc">Accurate Garbage Collection Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -5732,9 +5823,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_gcroot">'<tt>llvm.gcroot</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5763,9 +5854,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_gcread">'<tt>llvm.gcread</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5795,9 +5886,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_gcwrite">'<tt>llvm.gcwrite</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5827,9 +5918,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_codegen">Code Generator Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -5839,9 +5930,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_returnaddress">'<tt>llvm.returnaddress</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5874,9 +5965,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_frameaddress">'<tt>llvm.frameaddress</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5908,9 +5999,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_stacksave">'<tt>llvm.stacksave</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5938,9 +6029,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_stackrestore">'<tt>llvm.stackrestore</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5963,9 +6054,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_prefetch">'<tt>llvm.prefetch</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -5996,9 +6087,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_pcmarker">'<tt>llvm.pcmarker</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6027,9 +6118,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_readcyclecounter">'<tt>llvm.readcyclecounter</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6054,9 +6145,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_libc">Standard C Library Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -6068,9 +6159,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_memcpy">'<tt>llvm.memcpy</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6122,9 +6213,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_memmove">'<tt>llvm.memmove</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6178,9 +6269,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_memset">'<tt>llvm.memset.*</tt>' Intrinsics</a> -</div> +</h4> <div class="doc_text"> @@ -6228,9 +6319,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_sqrt">'<tt>llvm.sqrt.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6266,9 +6357,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_powi">'<tt>llvm.powi.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6302,9 +6393,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_sin">'<tt>llvm.sin.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6336,9 +6427,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_cos">'<tt>llvm.cos.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6370,9 +6461,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_pow">'<tt>llvm.pow.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6405,9 +6496,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_manip">Bit Manipulation Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -6417,9 +6508,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_bswap">'<tt>llvm.bswap.*</tt>' Intrinsics</a> -</div> +</h4> <div class="doc_text"> @@ -6452,9 +6543,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_ctpop">'<tt>llvm.ctpop.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6484,9 +6575,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_ctlz">'<tt>llvm.ctlz.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6518,9 +6609,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_cttz">'<tt>llvm.cttz.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -6552,9 +6643,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_overflow">Arithmetic with Overflow Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -6563,9 +6654,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_sadd_overflow">'<tt>llvm.sadd.with.overflow.*</tt>' Intrinsics</a> -</div> +<h4> + <a name="int_sadd_overflow"> + '<tt>llvm.sadd.with.overflow.*</tt>' Intrinsics + </a> +</h4> <div class="doc_text"> @@ -6609,9 +6702,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_uadd_overflow">'<tt>llvm.uadd.with.overflow.*</tt>' Intrinsics</a> -</div> +<h4> + <a name="int_uadd_overflow"> + '<tt>llvm.uadd.with.overflow.*</tt>' Intrinsics + </a> +</h4> <div class="doc_text"> @@ -6654,9 +6749,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_ssub_overflow">'<tt>llvm.ssub.with.overflow.*</tt>' Intrinsics</a> -</div> +<h4> + <a name="int_ssub_overflow"> + '<tt>llvm.ssub.with.overflow.*</tt>' Intrinsics + </a> +</h4> <div class="doc_text"> @@ -6700,9 +6797,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_usub_overflow">'<tt>llvm.usub.with.overflow.*</tt>' Intrinsics</a> -</div> +<h4> + <a name="int_usub_overflow"> + '<tt>llvm.usub.with.overflow.*</tt>' Intrinsics + </a> +</h4> <div class="doc_text"> @@ -6746,9 +6845,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_smul_overflow">'<tt>llvm.smul.with.overflow.*</tt>' Intrinsics</a> -</div> +<h4> + <a name="int_smul_overflow"> + '<tt>llvm.smul.with.overflow.*</tt>' Intrinsics + </a> +</h4> <div class="doc_text"> @@ -6793,9 +6894,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_umul_overflow">'<tt>llvm.umul.with.overflow.*</tt>' Intrinsics</a> -</div> +<h4> + <a name="int_umul_overflow"> + '<tt>llvm.umul.with.overflow.*</tt>' Intrinsics + </a> +</h4> <div class="doc_text"> @@ -6839,9 +6942,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_fp16">Half Precision Floating Point Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -6860,9 +6963,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_convert_to_fp16">'<tt>llvm.convert.to.fp16</tt>' Intrinsic</a> -</div> +<h4> + <a name="int_convert_to_fp16"> + '<tt>llvm.convert.to.fp16</tt>' Intrinsic + </a> +</h4> <div class="doc_text"> @@ -6895,9 +7000,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_convert_from_fp16">'<tt>llvm.convert.from.fp16</tt>' Intrinsic</a> -</div> +<h4> + <a name="int_convert_from_fp16"> + '<tt>llvm.convert.from.fp16</tt>' Intrinsic + </a> +</h4> <div class="doc_text"> @@ -6930,9 +7037,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_debugger">Debugger Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -6944,9 +7051,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_eh">Exception Handling Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -6958,9 +7065,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_trampoline">Trampoline Intrinsic</a> -</div> +</h3> <div class="doc_text"> @@ -6991,9 +7098,11 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_it">'<tt>llvm.init.trampoline</tt>' Intrinsic</a> -</div> +<h4> + <a name="int_it"> + '<tt>llvm.init.trampoline</tt>' Intrinsic + </a> +</h4> <div class="doc_text"> @@ -7033,9 +7142,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_atomics">Atomic Operations and Synchronization Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -7060,9 +7169,10 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_memory_barrier">'<tt>llvm.memory.barrier</tt>' Intrinsic</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> <pre> @@ -7131,9 +7241,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_atomic_cmp_swap">'<tt>llvm.atomic.cmp.swap.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7191,9 +7301,10 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_atomic_swap">'<tt>llvm.atomic.swap.*</tt>' Intrinsic</a> -</div> +</h4> + <div class="doc_text"> <h5>Syntax:</h5> @@ -7247,10 +7358,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_atomic_load_add">'<tt>llvm.atomic.load.add.*</tt>' Intrinsic</a> - -</div> +</h4> <div class="doc_text"> @@ -7297,10 +7407,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_atomic_load_sub">'<tt>llvm.atomic.load.sub.*</tt>' Intrinsic</a> - -</div> +</h4> <div class="doc_text"> @@ -7349,12 +7458,23 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_atomic_load_and">'<tt>llvm.atomic.load.and.*</tt>' Intrinsic</a><br> - <a name="int_atomic_load_nand">'<tt>llvm.atomic.load.nand.*</tt>' Intrinsic</a><br> - <a name="int_atomic_load_or">'<tt>llvm.atomic.load.or.*</tt>' Intrinsic</a><br> - <a name="int_atomic_load_xor">'<tt>llvm.atomic.load.xor.*</tt>' Intrinsic</a><br> -</div> +<h4> + <a name="int_atomic_load_and"> + '<tt>llvm.atomic.load.and.*</tt>' Intrinsic + </a> + <br> + <a name="int_atomic_load_nand"> + '<tt>llvm.atomic.load.nand.*</tt>' Intrinsic + </a> + <br> + <a name="int_atomic_load_or"> + '<tt>llvm.atomic.load.or.*</tt>' Intrinsic + </a> + <br> + <a name="int_atomic_load_xor"> + '<tt>llvm.atomic.load.xor.*</tt>' Intrinsic + </a> +</h4> <div class="doc_text"> @@ -7429,12 +7549,23 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="int_atomic_load_max">'<tt>llvm.atomic.load.max.*</tt>' Intrinsic</a><br> - <a name="int_atomic_load_min">'<tt>llvm.atomic.load.min.*</tt>' Intrinsic</a><br> - <a name="int_atomic_load_umax">'<tt>llvm.atomic.load.umax.*</tt>' Intrinsic</a><br> - <a name="int_atomic_load_umin">'<tt>llvm.atomic.load.umin.*</tt>' Intrinsic</a><br> -</div> +<h4> + <a name="int_atomic_load_max"> + '<tt>llvm.atomic.load.max.*</tt>' Intrinsic + </a> + <br> + <a name="int_atomic_load_min"> + '<tt>llvm.atomic.load.min.*</tt>' Intrinsic + </a> + <br> + <a name="int_atomic_load_umax"> + '<tt>llvm.atomic.load.umax.*</tt>' Intrinsic + </a> + <br> + <a name="int_atomic_load_umin"> + '<tt>llvm.atomic.load.umin.*</tt>' Intrinsic + </a> +</h4> <div class="doc_text"> @@ -7509,9 +7640,9 @@ LLVM</a>.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_memorymarkers">Memory Use Markers</a> -</div> +</h3> <div class="doc_text"> @@ -7521,9 +7652,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_lifetime_start">'<tt>llvm.lifetime.start</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7551,9 +7682,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_lifetime_end">'<tt>llvm.lifetime.end</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7580,9 +7711,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_invariant_start">'<tt>llvm.invariant.start</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7608,9 +7739,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_invariant_end">'<tt>llvm.invariant.end</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7635,9 +7766,9 @@ LLVM</a>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="int_general">General Intrinsics</a> -</div> +</h3> <div class="doc_text"> @@ -7647,9 +7778,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_var_annotation">'<tt>llvm.var.annotation</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7675,9 +7806,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_annotation">'<tt>llvm.annotation.*</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7711,9 +7842,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_trap">'<tt>llvm.trap</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7736,9 +7867,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_stackprotector">'<tt>llvm.stackprotector</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> @@ -7770,9 +7901,9 @@ LLVM</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="int_objectsize">'<tt>llvm.objectsize</tt>' Intrinsic</a> -</div> +</h4> <div class="doc_text"> diff --git a/docs/Lexicon.html b/docs/Lexicon.html index 682bd08..458da80 100644 --- a/docs/Lexicon.html +++ b/docs/Lexicon.html @@ -9,10 +9,10 @@ content="A glossary of terms used with the LLVM project."> </head> <body> -<div class="doc_title">The LLVM Lexicon</div> +<h1>The LLVM Lexicon</h1> <p class="doc_warning">NOTE: This document is a work in progress!</p> <!-- *********************************************************************** --> -<div class="doc_section">Table Of Contents</div> +<h2>Table Of Contents</h2> <!-- *********************************************************************** --> <div class="doc_text"> <table> @@ -83,10 +83,10 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section">Definitions</div> +<h2>Definitions</h2> <!-- *********************************************************************** --> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="A">- A -</a></div> +<h3><a name="A">- A -</a></h3> <div class="doc_text"> <dl> <dt><a name="ADCE"><b>ADCE</b></a></dt> @@ -94,7 +94,7 @@ </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="B">- B -</a></div> +<h3><a name="B">- B -</a></h3> <div class="doc_text"> <dl> <dt><a name="BURS"><b>BURS</b></a></dt> @@ -104,7 +104,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="C">- C -</a></div> +<h3><a name="C">- C -</a></h3> <div class="doc_text"> <dl> <dt><a name="CSE"><b>CSE</b></a></dt> @@ -116,7 +116,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="D">- D -</a></div> +<h3><a name="D">- D -</a></h3> <div class="doc_text"> <dl> <dt><a name="DAG"><b>DAG</b></a></dt> @@ -136,7 +136,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="G">- G -</a></div> +<h3><a name="G">- G -</a></h3> <div class="doc_text"> <dl> <dt><a name="GC"><b>GC</b></a></dt> @@ -145,7 +145,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="H">- H -</a></div> +<h3><a name="H">- H -</a></h3> <div class="doc_text"> <dl> <dt><a name="Heap"><b>Heap</b></a></dt> @@ -154,7 +154,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="I">- I -</a></div> +<h3><a name="I">- I -</a></h3> <div class="doc_text"> <dl> <dt><a name="IPA"><b>IPA</b></a></dt> @@ -169,7 +169,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="L">- L -</a></div> +<h3><a name="L">- L -</a></h3> <div class="doc_text"> <dl> <dt><a name="LCSSA"><b>LCSSA</b></a></dt> @@ -183,7 +183,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="M">- M -</a></div> +<h3><a name="M">- M -</a></h3> <div class="doc_text"> <dl> <dt><a name="MC"><b>MC</b></a></dt> @@ -191,7 +191,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </dl> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="O">- O -</a></div> +<h3><a name="O">- O -</a></h3> <div class="doc_text"> <dl> <dt><a name="Object_Pointer"><b>Object Pointer</b></a></dt> @@ -202,7 +202,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="P">- P -</a></div> +<h3><a name="P">- P -</a></h3> <div class="doc_text"> <dl> <dt><a name="PRE"><b>PRE</b></a></dt> @@ -211,7 +211,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="R">- R -</a></div> +<h3><a name="R">- R -</a></h3> <div class="doc_text"> <dl> <dt><a name="RAUW"><b>RAUW</b></a></dt> <dd>An abbreviation for Replace @@ -234,7 +234,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG</a> tool.</dd> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="S">- S -</a></div> +<h3><a name="S">- S -</a></h3> <div class="doc_text"> <dl> <dt><a name="Safe_Point"><b>Safe Point</b></a></dt> diff --git a/docs/LinkTimeOptimization.html b/docs/LinkTimeOptimization.html index 05011e6..720a5e4 100644 --- a/docs/LinkTimeOptimization.html +++ b/docs/LinkTimeOptimization.html @@ -6,9 +6,9 @@ <link rel="stylesheet" href="llvm.css" type="text/css"> </head> -<div class="doc_title"> +<h1> LLVM Link Time Optimization: Design and Implementation -</div> +</h1> <ul> <li><a href="#desc">Description</a></li> @@ -36,9 +36,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="desc">Description</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -50,9 +50,9 @@ and design between the LTO optimizer and the linker.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="design">Design Philosophy</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -72,9 +72,9 @@ conservative escape analysis. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="example1">Example of link time optimization</a> -</div> +</h3> <div class="doc_text"> <p>The following example illustrates the advantages of LTO's integrated @@ -145,9 +145,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="alternative_approaches">Alternative Approaches</a> -</div> +</h3> <div class="doc_text"> <dl> @@ -176,9 +176,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="multiphase">Multi-phase communication between libLTO and linker</a> -</div> +</h2> <div class="doc_text"> <p>The linker collects information about symbol defininitions and uses in @@ -195,9 +195,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="phase1">Phase 1 : Read LLVM Bitcode Files</a> -</div> +</h3> <div class="doc_text"> <p>The linker first reads all object files in natural order and collects @@ -219,9 +219,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="phase2">Phase 2 : Symbol Resolution</a> -</div> +</h3> <div class="doc_text"> <p>In this stage, the linker resolves symbols using global symbol table. @@ -233,9 +233,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="phase3">Phase 3 : Optimize Bitcode Files</a> -</div> +</h3> <div class="doc_text"> <p>After symbol resolution, the linker tells the LTO shared object which symbols are needed by native object files. In the example above, the linker @@ -248,9 +248,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="phase4">Phase 4 : Symbol Resolution after optimization</a> -</div> +</h3> <div class="doc_text"> <p>In this phase, the linker reads optimized a native object file and @@ -265,9 +265,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="lto">libLTO</a> -</div> +</h2> <div class="doc_text"> <p><tt>libLTO</tt> is a shared object that is part of the LLVM tools, and @@ -281,9 +281,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="lto_module_t">lto_module_t</a> -</div> +</h3> <div class="doc_text"> @@ -325,9 +325,9 @@ lto_module_get_symbol_attribute(lto_module_t, unsigned int) </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="lto_code_gen_t">lto_code_gen_t</a> -</div> +</h3> <div class="doc_text"> diff --git a/docs/MakefileGuide.html b/docs/MakefileGuide.html index f50e335..a85314a 100644 --- a/docs/MakefileGuide.html +++ b/docs/MakefileGuide.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">LLVM Makefile Guide</div> +<h1>LLVM Makefile Guide</h1> <ol> <li><a href="#introduction">Introduction</a></li> @@ -77,7 +77,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="introduction">Introduction </a></div> +<h2><a name="introduction">Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -99,7 +99,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="general">General Concepts</a></div> +<h2><a name="general">General Concepts</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -111,7 +111,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="projects">Projects</a></div> +<h3><a name="projects">Projects</a></h3> <div class="doc_text"> <p>The LLVM Makefile System is quite generous. It not only builds its own software, but it can build yours too. Built into the system is knowledge of @@ -129,7 +129,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="varvalues">Variable Values</a></div> +<h3><a name="varvalues">Variable Values</a></h3> <div class="doc_text"> <p>To use the makefile system, you simply create a file named <tt>Makefile</tt> in your directory and declare values for certain variables. @@ -139,7 +139,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="including">Including Makefiles</a></div> +<h3><a name="including">Including Makefiles</a></h3> <div class="doc_text"> <p>Setting variables alone is not enough. You must include into your Makefile additional files that provide the rules of the LLVM Makefile system. The @@ -147,7 +147,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="Makefile">Makefile</a></div> +<h4><a name="Makefile">Makefile</a></h4> <div class="doc_text"> <p>Each directory to participate in the build needs to have a file named <tt>Makefile</tt>. This is the file first read by <tt>make</tt>. It has three @@ -163,8 +163,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="Makefile.common">Makefile.common</a> -</div> +<h4><a name="Makefile.common">Makefile.common</a></h4> <div class="doc_text"> <p>Every project must have a <tt>Makefile.common</tt> file at its top source directory. This file serves three purposes:</p> @@ -182,8 +181,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="Makefile.config">Makefile.config</a> -</div> +<h4><a name="Makefile.config">Makefile.config</a></h4> <div class="doc_text"> <p>Every project must have a <tt>Makefile.config</tt> at the top of its <em>build</em> directory. This file is <b>generated</b> by the @@ -196,7 +194,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="Makefile.rules">Makefile.rules</a></div> +<h4><a name="Makefile.rules">Makefile.rules</a></h4> <div class="doc_text"> <p>This file, located at <tt>$(LLVM_SRC_ROOT)/Makefile.rules</tt> is the heart of the LLVM Makefile System. It provides all the logic, dependencies, and @@ -206,7 +204,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="Comments">Comments</a></div> +<h3><a name="Comments">Comments</a></h3> <div class="doc_text"> <p>User Makefiles need not have comments in them unless the construction is unusual or it does not strictly follow the rules and patterns of the LLVM @@ -216,7 +214,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="tutorial">Tutorial</a></div> +<h2><a name="tutorial">Tutorial</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> <p>This section provides some examples of the different kinds of modules you @@ -226,7 +224,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="libraries">Libraries</a></div> +<h3><a name="libraries">Libraries</a></h3> <div class="doc_text"> <p>Only a few variable definitions are needed to build a regular library. Normally, the makefile system will build all the software into a single @@ -259,7 +257,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="BCModules">Bitcode Modules</a></div> +<h4><a name="BCModules">Bitcode Modules</a></h4> <div class="doc_text"> <p>In some situations, it is desirable to build a single bitcode module from a variety of sources, instead of an archive, shared library, or bitcode @@ -280,9 +278,9 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="LoadableModules">Loadable Modules</a> -</div> +</h4> <div class="doc_text"> <p>In some situations, you need to create a loadable module. Loadable modules can be loaded into programs like <tt>opt</tt> or <tt>llc</tt> to specify @@ -312,7 +310,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="tools">Tools</a></div> +<h3><a name="tools">Tools</a></h3> <div class="doc_text"> <p>For building executable programs (tools), you must provide the name of the tool and the names of the libraries you wish to link with the tool. For @@ -347,7 +345,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="JIT">JIT Tools</a></div> +<h4><a name="JIT">JIT Tools</a></h4> <div class="doc_text"> <p>Many tools will want to use the JIT features of LLVM. To do this, you simply specify that you want an execution 'engine', and the makefiles will @@ -368,7 +366,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="targets">Targets Supported</a></div> +<h2><a name="targets">Targets Supported</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -429,7 +427,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="all">all (default)</a></div> +<h3><a name="all">all (default)</a></h3> <div class="doc_text"> <p>When you invoke <tt>make</tt> with no arguments, you are implicitly instructing it to seek the "all" target (goal). This target is used for @@ -440,14 +438,14 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="all-local">all-local</a></div> +<h3><a name="all-local">all-local</a></h3> <div class="doc_text"> <p>This target is the same as <a href="#all">all</a> but it operates only on the current directory instead of recursively.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="check">check</a></div> +<h3><a name="check">check</a></h3> <div class="doc_text"> <p>This target can be invoked from anywhere within a project's directories but always invokes the <a href="#check-local"><tt>check-local</tt></a> target @@ -464,7 +462,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="check-local">check-local</a></div> +<h3><a name="check-local">check-local</a></h3> <div class="doc_text"> <p>This target should be implemented by the <tt>Makefile</tt> in the project's <tt>test</tt> directory. It is invoked by the <tt>check</tt> target elsewhere. @@ -475,7 +473,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="clean">clean</a></div> +<h3><a name="clean">clean</a></h3> <div class="doc_text"> <p>This target cleans the build directory, recursively removing all things that the Makefile builds. The cleaning rules have been made guarded so they @@ -484,14 +482,14 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="clean-local">clean-local</a></div> +<h3><a name="clean-local">clean-local</a></h3> <div class="doc_text"> <p>This target does the same thing as <tt>clean</tt> but only for the current (local) directory.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="dist">dist</a></div> +<h3><a name="dist">dist</a></h3> <div class="doc_text"> <p>This target builds a distribution tarball. It first builds the entire project using the <tt>all</tt> target and then tars up the necessary files and @@ -500,7 +498,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="dist-check">dist-check</a></div> +<h3><a name="dist-check">dist-check</a></h3> <div class="doc_text"> <p>This target does the same thing as the <tt>dist</tt> target but also checks the distribution tarball. The check is made by unpacking the tarball to a new @@ -512,7 +510,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="dist-clean">dist-clean</a></div> +<h3><a name="dist-clean">dist-clean</a></h3> <div class="doc_text"> <p>This is a special form of the <tt>clean</tt> clean target. It performs a normal <tt>clean</tt> but also removes things pertaining to building the @@ -520,7 +518,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="install">install</a></div> +<h3><a name="install">install</a></h3> <div class="doc_text"> <p>This target finalizes shared objects and executables and copies all libraries, headers, executables and documentation to the directory given @@ -538,7 +536,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="preconditions">preconditions</a></div> +<h3><a name="preconditions">preconditions</a></h3> <div class="doc_text"> <p>This utility target checks to see if the <tt>Makefile</tt> in the object directory is older than the <tt>Makefile</tt> in the source directory and @@ -549,14 +547,14 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="printvars">printvars</a></div> +<h3><a name="printvars">printvars</a></h3> <div class="doc_text"> <p>This utility target just causes the LLVM makefiles to print out some of the makefile variables so that you can double check how things are set. </p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="reconfigure">reconfigure</a></div> +<h3><a name="reconfigure">reconfigure</a></h3> <div class="doc_text"> <p>This utility target will force a reconfigure of LLVM or your project. It simply runs <tt>$(PROJ_OBJ_ROOT)/config.status --recheck</tt> to rerun the @@ -566,7 +564,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="spotless">spotless</a></div> +<h3><a name="spotless">spotless</a></h3> <div class="doc_text"> <p>This utility target, only available when <tt>$(PROJ_OBJ_ROOT)</tt> is not the same as <tt>$(PROJ_SRC_ROOT)</tt>, will completely clean the @@ -578,7 +576,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="tags">tags</a></div> +<h3><a name="tags">tags</a></h3> <div class="doc_text"> <p>This target will generate a <tt>TAGS</tt> file in the top-level source directory. It is meant for use with emacs, XEmacs, or ViM. The TAGS file @@ -587,7 +585,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="uninstall">uninstall</a></div> +<h3><a name="uninstall">uninstall</a></h3> <div class="doc_text"> <p>This target is the opposite of the <tt>install</tt> target. It removes the header, library and executable files from the installation directories. Note @@ -596,7 +594,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="variables">Variables</a></div> +<h2><a name="variables">Variables</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> <p>Variables are used to tell the LLVM Makefile System what to do and to @@ -609,7 +607,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="setvars">Control Variables</a></div> +<h3><a name="setvars">Control Variables</a></h3> <div class="doc_text"> <p>Variables listed in the table below should be set <em>before</em> the inclusion of <a href="#Makefile.common"><tt>$(LEVEL)/Makefile.common</tt></a>. @@ -762,7 +760,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="overvars">Override Variables</a></div> +<h3><a name="overvars">Override Variables</a></h3> <div class="doc_text"> <p>Override variables can be used to override the default values provided by the LLVM makefile system. These variables can be set in @@ -868,7 +866,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="getvars">Readable Variables</a></div> +<h3><a name="getvars">Readable Variables</a></h3> <div class="doc_text"> <p>Variables listed in the table below can be used by the user's Makefile but should not be changed. Changing the value will generally cause the build to go @@ -939,7 +937,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="intvars">Internal Variables</a></div> +<h3><a name="intvars">Internal Variables</a></h3> <div class="doc_text"> <p>Variables listed below are used by the LLVM Makefile System and considered internal. You should not use these variables under any diff --git a/docs/Packaging.html b/docs/Packaging.html index 3376bbc..86d6ca1 100644 --- a/docs/Packaging.html +++ b/docs/Packaging.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">Advice on Packaging LLVM</div> +<h1>Advice on Packaging LLVM</h1> <ol> <li><a href="#overview">Overview</a></li> <li><a href="#compilation">Compile Flags</a></li> @@ -17,7 +17,7 @@ </ol> <!--=========================================================================--> -<div class="doc_section"><a name="overview">Overview</a></div> +<h2><a name="overview">Overview</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -34,7 +34,7 @@ developed against each. </div> <!--=========================================================================--> -<div class="doc_section"><a name="compilation">Compile Flags</a></div> +<h2><a name="compilation">Compile Flags</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -65,7 +65,7 @@ versions of LLVM in parallel. The following configure flags are relevant: </div> <!--=========================================================================--> -<div class="doc_section"><a name="cxx-features">C++ Features</a></div> +<h2><a name="cxx-features">C++ Features</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -78,7 +78,7 @@ versions of LLVM in parallel. The following configure flags are relevant: </div> <!--=========================================================================--> -<div class="doc_section"><a name="shared-library">Shared Library</a></div> +<h2><a name="shared-library">Shared Library</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -89,7 +89,7 @@ against it. This saves lots of binary size at the cost of some startup time. </div> <!--=========================================================================--> -<div class="doc_section"><a name="deps">Dependencies</a></div> +<h2><a name="deps">Dependencies</a></h2> <!--=========================================================================--> <div class="doc_text"> diff --git a/docs/Passes.html b/docs/Passes.html index 9a5ad91..8b99337 100644 --- a/docs/Passes.html +++ b/docs/Passes.html @@ -1,4 +1,4 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" +32;10;2c<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html> <head> @@ -40,7 +40,7 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! --> -<div class="doc_title">LLVM's Analysis and Transform Passes</div> +<h1>LLVM's Analysis and Transform Passes</h1> <ol> <li><a href="#intro">Introduction</a></li> @@ -55,7 +55,7 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-- ======================================================================= --> -<div class="doc_section"> <a name="intro">Introduction</a> </div> +<h2><a name="intro">Introduction</a></h2> <div class="doc_text"> <p>This document serves as a high level summary of the optimization features that LLVM provides. Optimizations are implemented as Passes that traverse some @@ -204,15 +204,15 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-- ======================================================================= --> -<div class="doc_section"> <a name="analyses">Analysis Passes</a></div> +<h2><a name="analyses">Analysis Passes</a></h2> <div class="doc_text"> <p>This section describes the LLVM Analysis Passes.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="aa-eval">-aa-eval: Exhaustive Alias Analysis Precision Evaluator</a> -</div> +</h3> <div class="doc_text"> <p>This is a simple N^2 alias analysis accuracy evaluator. Basically, for each function in the program, it simply queries to see how the @@ -224,9 +224,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="basicaa">-basicaa: Basic Alias Analysis (stateless AA impl)</a> -</div> +</h3> <div class="doc_text"> <p> This is the default implementation of the Alias Analysis interface @@ -236,17 +236,17 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="basiccg">-basiccg: Basic CallGraph Construction</a> -</div> +</h3> <div class="doc_text"> <p>Yet to be written.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="count-aa">-count-aa: Count Alias Analysis Query Responses</a> -</div> +</h3> <div class="doc_text"> <p> A pass which can be used to count how many alias queries @@ -255,9 +255,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="debug-aa">-debug-aa: AA use debugger</a> -</div> +</h3> <div class="doc_text"> <p> This simple pass checks alias analysis users to ensure that if they @@ -272,9 +272,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="domfrontier">-domfrontier: Dominance Frontier Construction</a> -</div> +</h3> <div class="doc_text"> <p> This pass is a simple dominator construction algorithm for finding forward @@ -283,9 +283,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="domtree">-domtree: Dominator Tree Construction</a> -</div> +</h3> <div class="doc_text"> <p> This pass is a simple dominator construction algorithm for finding forward @@ -294,9 +294,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dot-callgraph">-dot-callgraph: Print Call Graph to 'dot' file</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the call graph into a @@ -306,9 +306,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dot-cfg">-dot-cfg: Print CFG of function to 'dot' file</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the control flow graph @@ -318,9 +318,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dot-cfg-only">-dot-cfg-only: Print CFG of function to 'dot' file (with no function bodies)</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the control flow graph @@ -331,9 +331,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dot-dom">-dot-dom: Print dominance tree of function to 'dot' file</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the dominator tree @@ -343,9 +343,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dot-dom-only">-dot-dom-only: Print dominance tree of function to 'dot' file (with no function bodies)</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the dominator tree @@ -356,9 +356,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dot-postdom">-dot-postdom: Print postdominance tree of function to 'dot' file</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the post dominator tree @@ -368,9 +368,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dot-postdom-only">-dot-postdom-only: Print postdominance tree of function to 'dot' file (with no function bodies)</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the post dominator tree @@ -381,9 +381,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="globalsmodref-aa">-globalsmodref-aa: Simple mod/ref analysis for globals</a> -</div> +</h3> <div class="doc_text"> <p> This simple pass provides alias and mod/ref information for global values @@ -394,9 +394,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="instcount">-instcount: Counts the various types of Instructions</a> -</div> +</h3> <div class="doc_text"> <p> This pass collects the count of all instructions and reports them @@ -404,9 +404,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="intervals">-intervals: Interval Partition Construction</a> -</div> +</h3> <div class="doc_text"> <p> This analysis calculates and represents the interval partition of a function, @@ -420,43 +420,43 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="iv-users">-iv-users: Induction Variable Users</a> -</div> +</h3> <div class="doc_text"> <p>Bookkeeping for "interesting" users of expressions computed from induction variables.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="lazy-value-info">-lazy-value-info: Lazy Value Information Analysis</a> -</div> +</h3> <div class="doc_text"> <p>Interface for lazy computation of value constraint information.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="lda">-lda: Loop Dependence Analysis</a> -</div> +</h3> <div class="doc_text"> <p>Loop dependence analysis framework, which is used to detect dependences in memory accesses in loops.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="libcall-aa">-libcall-aa: LibCall Alias Analysis</a> -</div> +</h3> <div class="doc_text"> <p>LibCall Alias Analysis.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="lint">-lint: Statically lint-checks LLVM IR</a> -</div> +</h3> <div class="doc_text"> <p>This pass statically checks for common and easily-identified constructs which produce undefined or likely unintended behavior in LLVM IR.</p> @@ -485,9 +485,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loops">-loops: Natural Loop Information</a> -</div> +</h3> <div class="doc_text"> <p> This analysis is used to identify natural loops and determine the loop depth @@ -498,9 +498,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="memdep">-memdep: Memory Dependence Analysis</a> -</div> +</h3> <div class="doc_text"> <p> An analysis that determines, for a given memory operation, what preceding @@ -511,9 +511,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="module-debuginfo">-module-debuginfo: Decodes module-level debug info</a> -</div> +</h3> <div class="doc_text"> <p>This pass decodes the debug info metadata in a module and prints in a (sufficiently-prepared-) human-readable form. @@ -524,9 +524,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="no-aa">-no-aa: No Alias Analysis (always returns 'may' alias)</a> -</div> +</h3> <div class="doc_text"> <p> Always returns "I don't know" for alias queries. NoAA is unlike other alias @@ -536,9 +536,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="no-profile">-no-profile: No Profile Information</a> -</div> +</h3> <div class="doc_text"> <p> The default "no profile" implementation of the abstract @@ -547,9 +547,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="postdomfrontier">-postdomfrontier: Post-Dominance Frontier Construction</a> -</div> +</h3> <div class="doc_text"> <p> This pass is a simple post-dominator construction algorithm for finding @@ -558,9 +558,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="postdomtree">-postdomtree: Post-Dominator Tree Construction</a> -</div> +</h3> <div class="doc_text"> <p> This pass is a simple post-dominator construction algorithm for finding @@ -569,17 +569,17 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-alias-sets">-print-alias-sets: Alias Set Printer</a> -</div> +</h3> <div class="doc_text"> <p>Yet to be written.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-callgraph">-print-callgraph: Print a call graph</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the call graph to @@ -588,9 +588,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-callgraph-sccs">-print-callgraph-sccs: Print SCCs of the Call Graph</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the SCCs of the call @@ -599,9 +599,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-cfg-sccs">-print-cfg-sccs: Print SCCs of each function CFG</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints the SCCs of each @@ -610,9 +610,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-dbginfo">-print-dbginfo: Print debug info in human readable form</a> -</div> +</h3> <div class="doc_text"> <p>Pass that prints instructions, and associated debug info:</p> <ul> @@ -624,17 +624,17 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-dom-info">-print-dom-info: Dominator Info Printer</a> -</div> +</h3> <div class="doc_text"> <p>Dominator Info Printer.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-externalfnconstants">-print-externalfnconstants: Print external fn callsites passed constants</a> -</div> +</h3> <div class="doc_text"> <p> This pass, only available in <code>opt</code>, prints out call sites to @@ -645,9 +645,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-function">-print-function: Print function to stderr</a> -</div> +</h3> <div class="doc_text"> <p> The <code>PrintFunctionPass</code> class is designed to be pipelined with @@ -657,9 +657,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-module">-print-module: Print module to stderr</a> -</div> +</h3> <div class="doc_text"> <p> This pass simply prints out the entire module when it is executed. @@ -667,9 +667,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="print-used-types">-print-used-types: Find Used Types</a> -</div> +</h3> <div class="doc_text"> <p> This pass is used to seek out all of the types in use by the program. Note @@ -678,9 +678,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="profile-estimator">-profile-estimator: Estimate profiling information</a> -</div> +</h3> <div class="doc_text"> <p>Profiling information that estimates the profiling information in a very crude and unimaginative way. @@ -688,9 +688,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="profile-loader">-profile-loader: Load profile information from llvmprof.out</a> -</div> +</h3> <div class="doc_text"> <p> A concrete implementation of profiling information that loads the information @@ -699,15 +699,15 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="profile-verifier">-profile-verifier: Verify profiling information</a> -</div> +</h3> <div class="doc_text"> <p>Pass that checks profiling information for plausibility.</p> </div> -<div class="doc_subsection"> +<h3> <a name="regions">-regions: Detect single entry single exit regions</a> -</div> +</h3> <div class="doc_text"> <p> The <code>RegionInfo</code> pass detects single entry single exit regions in a @@ -718,9 +718,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="scalar-evolution">-scalar-evolution: Scalar Evolution Analysis</a> -</div> +</h3> <div class="doc_text"> <p> The <code>ScalarEvolution</code> analysis can be used to analyze and @@ -737,9 +737,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="scev-aa">-scev-aa: ScalarEvolution-based Alias Analysis</a> -</div> +</h3> <div class="doc_text"> <p>Simple alias analysis implemented in terms of ScalarEvolution queries. @@ -753,24 +753,24 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="targetdata">-targetdata: Target Data Layout</a> -</div> +</h3> <div class="doc_text"> <p>Provides other passes access to information on how the size and alignment required by the the target ABI for various data types.</p> </div> <!-- ======================================================================= --> -<div class="doc_section"> <a name="transforms">Transform Passes</a></div> +<h2><a name="transforms">Transform Passes</a></h2> <div class="doc_text"> <p>This section describes the LLVM Transform Passes.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="adce">-adce: Aggressive Dead Code Elimination</a> -</div> +</h3> <div class="doc_text"> <p>ADCE aggressively tries to eliminate code. This pass is similar to <a href="#dce">DCE</a> but it assumes that values are dead until proven @@ -779,18 +779,18 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="always-inline">-always-inline: Inliner for always_inline functions</a> -</div> +</h3> <div class="doc_text"> <p>A custom inliner that handles only functions that are marked as "always inline".</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="argpromotion">-argpromotion: Promote 'by reference' arguments to scalars</a> -</div> +</h3> <div class="doc_text"> <p> This pass promotes "by reference" arguments to be "by value" arguments. In @@ -819,9 +819,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="block-placement">-block-placement: Profile Guided Basic Block Placement</a> -</div> +</h3> <div class="doc_text"> <p>This pass is a very simple profile guided basic block placement algorithm. The idea is to put frequently executed blocks together at the start of the @@ -831,9 +831,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="break-crit-edges">-break-crit-edges: Break critical edges in CFG</a> -</div> +</h3> <div class="doc_text"> <p> Break all of the critical edges in the CFG by inserting a dummy basic block. @@ -844,9 +844,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="codegenprepare">-codegenprepare: Optimize for code generation</a> -</div> +</h3> <div class="doc_text"> This pass munges the code in the input function to better prepare it for SelectionDAG-based code generation. This works around limitations in it's @@ -854,9 +854,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="constmerge">-constmerge: Merge Duplicate Global Constants</a> -</div> +</h3> <div class="doc_text"> <p> Merges duplicate global constants together into a single constant that is @@ -867,9 +867,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="constprop">-constprop: Simple constant propagation</a> -</div> +</h3> <div class="doc_text"> <p>This file implements constant propagation and merging. It looks for instructions involving only constant operands and replaces them with a @@ -883,9 +883,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dce">-dce: Dead Code Elimination</a> -</div> +</h3> <div class="doc_text"> <p> Dead code elimination is similar to <a href="#die">dead instruction @@ -895,9 +895,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="deadargelim">-deadargelim: Dead Argument Elimination</a> -</div> +</h3> <div class="doc_text"> <p> This pass deletes dead arguments from internal functions. Dead argument @@ -913,9 +913,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="deadtypeelim">-deadtypeelim: Dead Type Elimination</a> -</div> +</h3> <div class="doc_text"> <p> This pass is used to cleanup the output of GCC. It eliminate names for types @@ -925,9 +925,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="die">-die: Dead Instruction Elimination</a> -</div> +</h3> <div class="doc_text"> <p> Dead instruction elimination performs a single pass over the function, @@ -936,9 +936,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="dse">-dse: Dead Store Elimination</a> -</div> +</h3> <div class="doc_text"> <p> A trivial dead store elimination that only considers basic-block local @@ -947,9 +947,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="functionattrs">-functionattrs: Deduce function attributes</a> -</div> +</h3> <div class="doc_text"> <p>A simple interprocedural pass which walks the call-graph, looking for functions which do not access or only read non-local memory, and marking them @@ -962,9 +962,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="globaldce">-globaldce: Dead Global Elimination</a> -</div> +</h3> <div class="doc_text"> <p> This transform is designed to eliminate unreachable internal globals from the @@ -976,9 +976,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="globalopt">-globalopt: Global Variable Optimizer</a> -</div> +</h3> <div class="doc_text"> <p> This pass transforms simple global variables that never have their address @@ -988,9 +988,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="gvn">-gvn: Global Value Numbering</a> -</div> +</h3> <div class="doc_text"> <p> This pass performs global value numbering to eliminate fully and partially @@ -999,9 +999,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="indvars">-indvars: Canonicalize Induction Variables</a> -</div> +</h3> <div class="doc_text"> <p> This transformation analyzes and transforms the induction variables (and @@ -1050,9 +1050,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="inline">-inline: Function Integration/Inlining</a> -</div> +</h3> <div class="doc_text"> <p> Bottom-up inlining of functions into callees. @@ -1060,9 +1060,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="insert-edge-profiling">-insert-edge-profiling: Insert instrumentation for edge profiling</a> -</div> +</h3> <div class="doc_text"> <p> This pass instruments the specified program with counters for edge profiling. @@ -1078,9 +1078,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="insert-optimal-edge-profiling">-insert-optimal-edge-profiling: Insert optimal instrumentation for edge profiling</a> -</div> +</h3> <div class="doc_text"> <p>This pass instruments the specified program with counters for edge profiling. Edge profiling can give a reasonable approximation of the hot paths through a @@ -1089,9 +1089,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="instcombine">-instcombine: Combine redundant instructions</a> -</div> +</h3> <div class="doc_text"> <p> Combine instructions to form fewer, simple @@ -1143,9 +1143,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="internalize">-internalize: Internalize Global Symbols</a> -</div> +</h3> <div class="doc_text"> <p> This pass loops over all of the functions in the input module, looking for a @@ -1155,9 +1155,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="ipconstprop">-ipconstprop: Interprocedural constant propagation</a> -</div> +</h3> <div class="doc_text"> <p> This pass implements an <em>extremely</em> simple interprocedural constant @@ -1169,9 +1169,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="ipsccp">-ipsccp: Interprocedural Sparse Conditional Constant Propagation</a> -</div> +</h3> <div class="doc_text"> <p> An interprocedural variant of <a href="#sccp">Sparse Conditional Constant @@ -1180,9 +1180,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print " <p>\n" if ! </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="jump-threading">-jump-threading: Jump Threading</a> -</div> +</h3> <div class="doc_text"> <p> Jump threading tries to find distinct threads of control flow running through @@ -1209,9 +1209,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="lcssa">-lcssa: Loop-Closed SSA Form Pass</a> -</div> +</h3> <div class="doc_text"> <p> This pass transforms loops by placing phi nodes at the end of the loops for @@ -1238,9 +1238,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="licm">-licm: Loop Invariant Code Motion</a> -</div> +</h3> <div class="doc_text"> <p> This pass performs loop invariant code motion, attempting to remove as much @@ -1275,9 +1275,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loop-deletion">-loop-deletion: Delete dead loops</a> -</div> +</h3> <div class="doc_text"> <p> This file implements the Dead Loop Deletion Pass. This pass is responsible @@ -1288,9 +1288,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loop-extract">-loop-extract: Extract loops into new functions</a> -</div> +</h3> <div class="doc_text"> <p> A pass wrapper around the <code>ExtractLoop()</code> scalar transformation to @@ -1301,9 +1301,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loop-extract-single">-loop-extract-single: Extract at most one loop into a new function</a> -</div> +</h3> <div class="doc_text"> <p> Similar to <a href="#loop-extract">Extract loops into new functions</a>, @@ -1313,9 +1313,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loop-reduce">-loop-reduce: Loop Strength Reduction</a> -</div> +</h3> <div class="doc_text"> <p> This pass performs a strength reduction on array references inside loops that @@ -1327,17 +1327,17 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loop-rotate">-loop-rotate: Rotate Loops</a> -</div> +</h3> <div class="doc_text"> <p>A simple loop rotation transformation.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loop-simplify">-loop-simplify: Canonicalize natural loops</a> -</div> +</h3> <div class="doc_text"> <p> This pass performs several transformations to transform natural loops into a @@ -1376,9 +1376,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loop-unroll">-loop-unroll: Unroll loops</a> -</div> +</h3> <div class="doc_text"> <p> This pass implements a simple loop unroller. It works best when loops have @@ -1388,9 +1388,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loop-unswitch">-loop-unswitch: Unswitch loops</a> -</div> +</h3> <div class="doc_text"> <p> This pass transforms loops that contain branches on loop-invariant conditions @@ -1418,9 +1418,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="loweratomic">-loweratomic: Lower atomic intrinsics to non-atomic form</a> -</div> +</h3> <div class="doc_text"> <p> This pass lowers atomic intrinsics to non-atomic form for use in a known @@ -1436,9 +1436,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="lowerinvoke">-lowerinvoke: Lower invoke and unwind, for unwindless code generators</a> -</div> +</h3> <div class="doc_text"> <p> This transformation is designed for use by code generators which do not yet @@ -1477,9 +1477,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="lowersetjmp">-lowersetjmp: Lower Set Jump</a> -</div> +</h3> <div class="doc_text"> <p> Lowers <tt>setjmp</tt> and <tt>longjmp</tt> to use the LLVM invoke and unwind @@ -1506,9 +1506,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="lowerswitch">-lowerswitch: Lower SwitchInst's to branches</a> -</div> +</h3> <div class="doc_text"> <p> Rewrites <tt>switch</tt> instructions with a sequence of branches, which @@ -1518,9 +1518,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="mem2reg">-mem2reg: Promote Memory to Register</a> -</div> +</h3> <div class="doc_text"> <p> This file promotes memory references to be register references. It promotes @@ -1534,9 +1534,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="memcpyopt">-memcpyopt: MemCpy Optimization</a> -</div> +</h3> <div class="doc_text"> <p> This pass performs various transformations related to eliminating memcpy @@ -1545,9 +1545,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="mergefunc">-mergefunc: Merge Functions</a> -</div> +</h3> <div class="doc_text"> <p>This pass looks for equivalent functions that are mergable and folds them. @@ -1566,9 +1566,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="mergereturn">-mergereturn: Unify function exit nodes</a> -</div> +</h3> <div class="doc_text"> <p> Ensure that functions have at most one <tt>ret</tt> instruction in them. @@ -1577,9 +1577,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="partial-inliner">-partial-inliner: Partial Inliner</a> -</div> +</h3> <div class="doc_text"> <p>This pass performs partial inlining, typically by inlining an if statement that surrounds the body of the function. @@ -1587,9 +1587,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="prune-eh">-prune-eh: Remove unused exception handling info</a> -</div> +</h3> <div class="doc_text"> <p> This file implements a simple interprocedural pass which walks the call-graph, @@ -1600,9 +1600,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="reassociate">-reassociate: Reassociate expressions</a> -</div> +</h3> <div class="doc_text"> <p> This pass reassociates commutative expressions in an order that is designed @@ -1623,9 +1623,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="reg2mem">-reg2mem: Demote all values to stack slots</a> -</div> +</h3> <div class="doc_text"> <p> This file demotes all registers to memory references. It is intented to be @@ -1640,9 +1640,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="scalarrepl">-scalarrepl: Scalar Replacement of Aggregates (DT)</a> -</div> +</h3> <div class="doc_text"> <p> The well-known scalar replacement of aggregates transformation. This @@ -1662,9 +1662,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="sccp">-sccp: Sparse Conditional Constant Propagation</a> -</div> +</h3> <div class="doc_text"> <p> Sparse conditional constant propagation and merging, which can be summarized @@ -1685,9 +1685,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="simplify-libcalls">-simplify-libcalls: Simplify well-known library calls</a> -</div> +</h3> <div class="doc_text"> <p> Applies a variety of small optimizations for calls to specific well-known @@ -1698,9 +1698,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="simplifycfg">-simplifycfg: Simplify the CFG</a> -</div> +</h3> <div class="doc_text"> <p> Performs dead code elimination and basic block merging. Specifically: @@ -1717,9 +1717,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="sink">-sink: Code sinking</a> -</div> +</h3> <div class="doc_text"> <p>This pass moves instructions into successor blocks, when possible, so that they aren't executed on paths where their results aren't needed. @@ -1727,9 +1727,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="sretpromotion">-sretpromotion: Promote sret arguments to multiple ret values</a> -</div> +</h3> <div class="doc_text"> <p> This pass finds functions that return a struct (using a pointer to the struct @@ -1750,9 +1750,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="strip">-strip: Strip all symbols from a module</a> -</div> +</h3> <div class="doc_text"> <p> performs code stripping. this transformation can delete: @@ -1772,9 +1772,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="strip-dead-debug-info">-strip-dead-debug-info: Strip debug info for unused symbols</a> -</div> +</h3> <div class="doc_text"> <p> performs code stripping. this transformation can delete: @@ -1794,9 +1794,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="strip-dead-prototypes">-strip-dead-prototypes: Strip Unused Function Prototypes</a> -</div> +</h3> <div class="doc_text"> <p> This pass loops over all of the functions in the input module, looking for @@ -1807,9 +1807,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="strip-debug-declare">-strip-debug-declare: Strip all llvm.dbg.declare intrinsics</a> -</div> +</h3> <div class="doc_text"> <p>This pass implements code stripping. Specifically, it can delete:</p> <ul> @@ -1825,9 +1825,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="strip-nondebug">-strip-nondebug: Strip all symbols, except dbg symbols, from a module</a> -</div> +</h3> <div class="doc_text"> <p>This pass implements code stripping. Specifically, it can delete:</p> <ul> @@ -1843,9 +1843,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="tailcallelim">-tailcallelim: Tail Call Elimination</a> -</div> +</h3> <div class="doc_text"> <p> This file transforms calls of the current function (self recursion) followed @@ -1875,9 +1875,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="tailduplicate">-tailduplicate: Tail Duplication</a> -</div> +</h3> <div class="doc_text"> <p> This pass performs a limited form of tail duplication, intended to simplify @@ -1889,15 +1889,15 @@ if (X < 3) {</pre> </div> <!-- ======================================================================= --> -<div class="doc_section"> <a name="utilities">Utility Passes</a></div> +<h2><a name="utilities">Utility Passes</a></h2> <div class="doc_text"> <p>This section describes the LLVM Utility Passes.</p> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="deadarghaX0r">-deadarghaX0r: Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)</a> -</div> +</h3> <div class="doc_text"> <p> Same as dead argument elimination, but deletes arguments to functions which @@ -1906,9 +1906,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="extract-blocks">-extract-blocks: Extract Basic Blocks From Module (for bugpoint use)</a> -</div> +</h3> <div class="doc_text"> <p> This pass is used by bugpoint to extract all blocks from the module into their @@ -1916,9 +1916,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="instnamer">-instnamer: Assign names to anonymous instructions</a> -</div> +</h3> <div class="doc_text"> <p>This is a little utility pass that gives instructions names, this is mostly useful when diffing the effect of an optimization because deleting an @@ -1928,9 +1928,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="preverify">-preverify: Preliminary module verification</a> -</div> +</h3> <div class="doc_text"> <p> Ensures that the module is in the form required by the <a @@ -1944,9 +1944,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="verify">-verify: Module Verifier</a> -</div> +</h3> <div class="doc_text"> <p> Verifies an LLVM IR code. This is useful to run after an optimization which is @@ -1995,9 +1995,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="view-cfg">-view-cfg: View CFG of function</a> -</div> +</h3> <div class="doc_text"> <p> Displays the control flow graph using the GraphViz tool. @@ -2005,9 +2005,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="view-cfg-only">-view-cfg-only: View CFG of function (with no function bodies)</a> -</div> +</h3> <div class="doc_text"> <p> Displays the control flow graph using the GraphViz tool, but omitting function @@ -2016,9 +2016,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="view-dom">-view-dom: View dominance tree of function</a> -</div> +</h3> <div class="doc_text"> <p> Displays the dominator tree using the GraphViz tool. @@ -2026,9 +2026,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="view-dom-only">-view-dom-only: View dominance tree of function (with no function bodies)</a> -</div> +</h3> <div class="doc_text"> <p> Displays the dominator tree using the GraphViz tool, but omitting function @@ -2037,9 +2037,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="view-postdom">-view-postdom: View postdominance tree of function</a> -</div> +</h3> <div class="doc_text"> <p> Displays the post dominator tree using the GraphViz tool. @@ -2047,9 +2047,9 @@ if (X < 3) {</pre> </div> <!-------------------------------------------------------------------------- --> -<div class="doc_subsection"> +<h3> <a name="view-postdom-only">-view-postdom-only: View postdominance tree of function (with no function bodies)</a> -</div> +</h3> <div class="doc_text"> <p> Displays the post dominator tree using the GraphViz tool, but omitting diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html index e3f2a7a..b29c582 100644 --- a/docs/ProgrammersManual.html +++ b/docs/ProgrammersManual.html @@ -8,9 +8,9 @@ </head> <body> -<div class="doc_title"> +<h1> LLVM Programmer's Manual -</div> +</h1> <ol> <li><a href="#introduction">Introduction</a></li> @@ -210,9 +210,9 @@ with another <tt>Value</tt></a> </li> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction </a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -242,9 +242,9 @@ href="/doxygen/InstVisitor_8h-source.html">InstVisitor</a></tt> template.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="general">General Information</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -255,9 +255,9 @@ in the LLVM source-base, but that isn't specific to any particular API.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="stl">The C++ Standard Template Library</a> -</div> +</h3> <div class="doc_text"> @@ -305,9 +305,9 @@ to write maintainable code more than where to put your curly braces.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="stl">Other useful references</a> -</div> +</h3> <div class="doc_text"> @@ -319,9 +319,9 @@ static and shared libraries across platforms</a></li> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="apis">Important and useful LLVM APIs</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -332,10 +332,10 @@ know about when writing transformations.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="isa">The <tt>isa<></tt>, <tt>cast<></tt> and <tt>dyn_cast<></tt> templates</a> -</div> +</h3> <div class="doc_text"> @@ -442,10 +442,10 @@ are lots of examples in the LLVM source base.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="string_apis">Passing strings (the <tt>StringRef</tt> and <tt>Twine</tt> classes)</a> -</div> +</h3> <div class="doc_text"> @@ -464,9 +464,9 @@ passing strings efficiently.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="StringRef">The <tt>StringRef</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -504,9 +504,9 @@ small and pervasive enough in LLVM that it should always be passed by value.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="Twine">The <tt>Twine</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -541,9 +541,9 @@ accept concatenated strings.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="DEBUG">The <tt>DEBUG()</tt> macro and <tt>-debug</tt> option</a> -</div> +</h3> <div class="doc_text"> @@ -594,10 +594,10 @@ program hasn't been started yet, you can always just run it with </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="DEBUG_TYPE">Fine grained debug info with <tt>DEBUG_TYPE</tt> and the <tt>-debug-only</tt> option</a> -</div> +</h4> <div class="doc_text"> @@ -668,10 +668,10 @@ DEBUG_WITH_TYPE("", errs() << "No debug type (2)\n"); </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="Statistic">The <tt>Statistic</tt> class & <tt>-stats</tt> option</a> -</div> +</h3> <div class="doc_text"> @@ -768,9 +768,9 @@ maintainable and useful.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ViewGraph">Viewing graphs while debugging code</a> -</div> +</h3> <div class="doc_text"> @@ -817,9 +817,9 @@ attributes, then you can <tt>call DAG.clearGraphAttrs()</tt>. </p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="datastructure">Picking the Right Data Structure for a Task</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -881,9 +881,9 @@ cost of adding the elements to the container. </p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ds_sequential">Sequential Containers (std::vector, std::list, etc)</a> -</div> +</h3> <div class="doc_text"> There are a variety of sequential containers available for you, based on your @@ -891,9 +891,9 @@ needs. Pick the first in this section that will do what you want. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_arrayref">llvm/ADT/ArrayRef.h</a> -</div> +</h4> <div class="doc_text"> <p>The llvm::ArrayRef class is the preferred class to use in an interface that @@ -906,9 +906,9 @@ needs. Pick the first in this section that will do what you want. <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_fixedarrays">Fixed Size Arrays</a> -</div> +</h4> <div class="doc_text"> <p>Fixed size arrays are very simple and very fast. They are good if you know @@ -917,9 +917,9 @@ you have.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_heaparrays">Heap Allocated Arrays</a> -</div> +</h4> <div class="doc_text"> <p>Heap allocated arrays (new[] + delete[]) are also simple. They are good if @@ -933,9 +933,9 @@ construct those elements actually used).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_smallvector">"llvm/ADT/SmallVector.h"</a> -</div> +</h4> <div class="doc_text"> <p><tt>SmallVector<Type, N></tt> is a simple class that looks and smells @@ -962,9 +962,9 @@ SmallVectors are most useful when on the stack.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_vector"><vector></a> -</div> +</h4> <div class="doc_text"> <p> @@ -1004,9 +1004,9 @@ the loop.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_deque"><deque></a> -</div> +</h4> <div class="doc_text"> <p>std::deque is, in some senses, a generalized version of std::vector. Like @@ -1020,9 +1020,9 @@ something cheaper.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_list"><list></a> -</div> +</h4> <div class="doc_text"> <p>std::list is an extremely inefficient class that is rarely useful. @@ -1038,9 +1038,9 @@ not invalidate iterator or pointers to other elements in the list.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_ilist">llvm/ADT/ilist.h</a> -</div> +</h4> <div class="doc_text"> <p><tt>ilist<T></tt> implements an 'intrusive' doubly-linked list. It is @@ -1068,9 +1068,9 @@ Related classes of interest are explained in the following subsections: </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_ilist_traits">ilist_traits</a> -</div> +</h4> <div class="doc_text"> <p><tt>ilist_traits<T></tt> is <tt>ilist<T></tt>'s customization @@ -1079,9 +1079,9 @@ publicly derive from this traits class.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_iplist">iplist</a> -</div> +</h4> <div class="doc_text"> <p><tt>iplist<T></tt> is <tt>ilist<T></tt>'s base and as such @@ -1093,9 +1093,9 @@ used for a wide variety of customizations.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_ilist_node">llvm/ADT/ilist_node.h</a> -</div> +</h4> <div class="doc_text"> <p><tt>ilist_node<T></tt> implements a the forward and backward links @@ -1108,9 +1108,9 @@ in the default manner.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_ilist_sentinel">Sentinels</a> -</div> +</h4> <div class="doc_text"> <p><tt>ilist</tt>s have another specialty that must be considered. To be a good @@ -1146,9 +1146,9 @@ field in the ghostly sentinel which can be legally accessed.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_other">Other Sequential Container options</a> -</div> +</h4> <div class="doc_text"> <p>Other STL containers are available, such as std::string.</p> @@ -1161,9 +1161,9 @@ underlying container but don't affect the cost of the container itself.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ds_set">Set-Like Containers (std::set, SmallSet, SetVector, etc)</a> -</div> +</h3> <div class="doc_text"> @@ -1175,9 +1175,9 @@ this, providing various trade-offs.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_sortedvectorset">A sorted 'vector'</a> -</div> +</h4> <div class="doc_text"> @@ -1197,9 +1197,9 @@ efficiently queried with a standard binary or radix search.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_smallset">"llvm/ADT/SmallSet.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1220,9 +1220,9 @@ and erasing, but does not support iteration.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_smallptrset">"llvm/ADT/SmallPtrSet.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1240,9 +1240,9 @@ visited in sorted order.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_denseset">"llvm/ADT/DenseSet.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1259,9 +1259,9 @@ href="#dss_densemap">DenseMap</a> has. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_FoldingSet">"llvm/ADT/FoldingSet.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1296,9 +1296,9 @@ elements. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_set"><set></a> -</div> +</h4> <div class="doc_text"> @@ -1321,9 +1321,9 @@ std::set is almost never a good choice.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_setvector">"llvm/ADT/SetVector.h"</a> -</div> +</h4> <div class="doc_text"> <p>LLVM's SetVector<Type> is an adapter class that combines your choice of @@ -1361,9 +1361,9 @@ heap traffic.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_uniquevector">"llvm/ADT/UniqueVector.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1381,9 +1381,9 @@ factors, and produces a lot of malloc traffic. It should be avoided.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_otherset">Other Set-Like Container Options</a> -</div> +</h4> <div class="doc_text"> @@ -1402,9 +1402,9 @@ better.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ds_map">Map-Like Containers (std::map, DenseMap, etc)</a> -</div> +</h3> <div class="doc_text"> Map-like containers are useful when you want to associate data to a key. As @@ -1412,9 +1412,9 @@ usual, there are a lot of different ways to do this. :) </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_sortedvectormap">A sorted 'vector'</a> -</div> +</h4> <div class="doc_text"> @@ -1429,9 +1429,9 @@ vectors for sets. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_stringmap">"llvm/ADT/StringMap.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1463,9 +1463,9 @@ copies a string if a value is inserted into the table.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_indexedmap">"llvm/ADT/IndexedMap.h"</a> -</div> +</h4> <div class="doc_text"> <p> @@ -1483,9 +1483,9 @@ virtual register ID).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_densemap">"llvm/ADT/DenseMap.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1509,9 +1509,9 @@ inserted into the map) that it needs internally.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_valuemap">"llvm/ADT/ValueMap.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1526,9 +1526,9 @@ a <code>Config</code> parameter to the ValueMap template.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_intervalmap">"llvm/ADT/IntervalMap.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1543,9 +1543,9 @@ as STL iterators. The heavyweight iterators allow a smaller data structure.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_map"><map></a> -</div> +</h4> <div class="doc_text"> @@ -1563,9 +1563,9 @@ another element takes place).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_inteqclasses">"llvm/ADT/IntEqClasses.h"</a> -</div> +</h4> <div class="doc_text"> @@ -1583,9 +1583,9 @@ it can be edited again.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_othermap">Other Map-Like Container Options</a> -</div> +</h4> <div class="doc_text"> @@ -1602,9 +1602,9 @@ always better.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ds_string">String-like containers</a> -</div> +</h3> <div class="doc_text"> @@ -1616,9 +1616,9 @@ xref to #string_apis. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ds_bit">Bit storage containers (BitVector, SparseBitVector)</a> -</div> +</h3> <div class="doc_text"> <p>Unlike the other containers, there are only two bit storage containers, and @@ -1633,9 +1633,9 @@ please don't use it.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_bitvector">BitVector</a> -</div> +</h4> <div class="doc_text"> <p> The BitVector container provides a dynamic size set of bits for manipulation. @@ -1648,9 +1648,9 @@ the number of set bits to be high (IE a dense set). </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_smallbitvector">SmallBitVector</a> -</div> +</h4> <div class="doc_text"> <p> The SmallBitVector container provides the same interface as BitVector, but @@ -1667,9 +1667,9 @@ and its operator[] does not provide an assignable lvalue. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="dss_sparsebitvector">SparseBitVector</a> -</div> +</h4> <div class="doc_text"> <p> The SparseBitVector container is much like BitVector, with one major @@ -1682,9 +1682,9 @@ universe). The downside to the SparseBitVector is that setting and testing of r </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="common">Helpful Hints for Common Operations</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1700,9 +1700,9 @@ and descriptions of the main classes that you should know about.</p> <!-- NOTE: this section should be heavy on example code --> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="inspection">Basic Inspection and Traversal Routines</a> -</div> +</h3> <div class="doc_text"> @@ -1724,11 +1724,11 @@ structures are traversed in very similar ways.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="iterate_function">Iterating over the </a><a href="#BasicBlock"><tt>BasicBlock</tt></a>s in a <a href="#Function"><tt>Function</tt></a> -</div> +</h4> <div class="doc_text"> @@ -1759,11 +1759,11 @@ exactly equivalent to <tt>(*i).size()</tt> just like you'd expect.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="iterate_basicblock">Iterating over the </a><a href="#Instruction"><tt>Instruction</tt></a>s in a <a href="#BasicBlock"><tt>BasicBlock</tt></a> -</div> +</h4> <div class="doc_text"> @@ -1790,11 +1790,11 @@ basic block itself: <tt>errs() << *blk << "\n";</tt>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="iterate_institer">Iterating over the </a><a href="#Instruction"><tt>Instruction</tt></a>s in a <a href="#Function"><tt>Function</tt></a> -</div> +</h4> <div class="doc_text"> @@ -1836,10 +1836,10 @@ for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I) </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="iterate_convert">Turning an iterator into a class pointer (and vice-versa)</a> -</div> +</h4> <div class="doc_text"> @@ -1913,10 +1913,10 @@ and <tt>operator*</tt> changed to return a pointer instead of a reference.</p> </div> <!--_______________________________________________________________________--> -<div class="doc_subsubsection"> +<h4> <a name="iterate_complex">Finding call sites: a slightly more complex example</a> -</div> +</h4> <div class="doc_text"> @@ -1975,9 +1975,9 @@ class OurFunctionPass : public FunctionPass { </div> <!--_______________________________________________________________________--> -<div class="doc_subsubsection"> +<h4> <a name="calls_and_invokes">Treating calls and invokes the same way</a> -</div> +</h4> <div class="doc_text"> @@ -2002,9 +2002,9 @@ If you look at its definition, it has only a single pointer member.</p> </div> <!--_______________________________________________________________________--> -<div class="doc_subsubsection"> +<h4> <a name="iterate_chains">Iterating over def-use & use-def chains</a> -</div> +</h4> <div class="doc_text"> @@ -2063,10 +2063,10 @@ calling <tt>use/op_begin()</tt> on <tt>const Value*</tt>s or </div> <!--_______________________________________________________________________--> -<div class="doc_subsubsection"> +<h4> <a name="iterate_preds">Iterating over predecessors & successors of blocks</a> -</div> +</h4> <div class="doc_text"> @@ -2093,9 +2093,9 @@ succ_iterator/succ_begin/succ_end.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="simplechanges">Making simple changes</a> -</div> +</h3> <div class="doc_text"> @@ -2108,10 +2108,10 @@ and gives example code.</p> </div> <!--_______________________________________________________________________--> -<div class="doc_subsubsection"> +<h4> <a name="schanges_creating">Creating and inserting new <tt>Instruction</tt>s</a> -</div> +</h4> <div class="doc_text"> @@ -2249,9 +2249,9 @@ Instruction* newInst = new Instruction(..., pi); </div> <!--_______________________________________________________________________--> -<div class="doc_subsubsection"> +<h4> <a name="schanges_deleting">Deleting <tt>Instruction</tt>s</a> -</div> +</h4> <div class="doc_text"> @@ -2273,10 +2273,10 @@ block but not delete it, you can use the <tt>removeFromParent()</tt> method.</p> </div> <!--_______________________________________________________________________--> -<div class="doc_subsubsection"> +<h4> <a name="schanges_replacing">Replacing an <tt>Instruction</tt> with another <tt>Value</tt></a> -</div> +</h4> <div class="doc_text"> @@ -2339,9 +2339,9 @@ ReplaceInstWithValue, ReplaceInstWithInst --> </div> <!--_______________________________________________________________________--> -<div class="doc_subsubsection"> +<h4> <a name="schanges_deletingGV">Deleting <tt>GlobalVariable</tt>s</a> -</div> +</h4> <div class="doc_text"> @@ -2361,9 +2361,9 @@ GV->eraseFromParent(); </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="create_types">How to Create Types</a> -</div> +</h3> <div class="doc_text"> @@ -2401,9 +2401,9 @@ comment</a> for more details.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="threading">Threads and LLVM</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -2432,9 +2432,9 @@ support. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="startmultithreaded">Entering and Exiting Multithreaded Mode</a> -</div> +</h3> <div class="doc_text"> @@ -2469,9 +2469,9 @@ result in concurrent LLVM API calls. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="shutdown">Ending Execution with <tt>llvm_shutdown()</tt></a> -</div> +</h3> <div class="doc_text"> <p> @@ -2489,9 +2489,9 @@ destructor. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="managedstatic">Lazy Initialization with <tt>ManagedStatic</tt></a> -</div> +</h3> <div class="doc_text"> <p> @@ -2518,9 +2518,9 @@ and only if you know what you're doing! </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="llvmcontext">Achieving Isolation with <tt>LLVMContext</tt></a> -</div> +</h3> <div class="doc_text"> <p> @@ -2562,9 +2562,9 @@ isolation is not a concern. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="jitthreading">Threads and the JIT</a> -</div> +</h3> <div class="doc_text"> <p> @@ -2590,9 +2590,9 @@ access, but we suggest using only the eager JIT in threaded programs. </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="advanced">Advanced Topics</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -2604,9 +2604,9 @@ LLVM system, and only need to be accessed in unusual circumstances. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="TypeResolve">LLVM Type Resolution</a> -</div> +</h3> <div class="doc_text"> @@ -2640,9 +2640,9 @@ float }</tt>"). </div> <!-- ______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="BuildRecType">Basic Recursive Type Construction</a> -</div> +</h4> <div class="doc_text"> @@ -2696,9 +2696,9 @@ href="#PATypeHolder">PATypeHolder class</a>. </div> <!-- ______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="refineAbstractTypeTo">The <tt>refineAbstractTypeTo</tt> method</a> -</div> +</h4> <div class="doc_text"> <p> @@ -2726,9 +2726,9 @@ complex datastructures. </div> <!-- ______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="PATypeHolder">The PATypeHolder Class</a> -</div> +</h4> <div class="doc_text"> <p> @@ -2748,9 +2748,9 @@ Type is maintained by PATypeHolder objects. </div> <!-- ______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="AbstractTypeUser">The AbstractTypeUser Class</a> -</div> +</h4> <div class="doc_text"> @@ -2768,10 +2768,10 @@ objects) can never be refined. <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="SymbolTable">The <tt>ValueSymbolTable</tt> and <tt>TypeSymbolTable</tt> classes</a> -</div> +</h3> <div class="doc_text"> <p>The <tt><a href="http://llvm.org/doxygen/classllvm_1_1ValueSymbolTable.html"> @@ -2804,9 +2804,9 @@ insert entries into the symbol table.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="UserLayout">The <tt>User</tt> and owned <tt>Use</tt> classes' memory layout</a> -</div> +</h3> <div class="doc_text"> <p>The <tt><a href="http://llvm.org/doxygen/classllvm_1_1User.html"> @@ -2817,9 +2817,11 @@ Use</a></tt> helper class is employed to do the bookkeeping and to facilitate <i addition and removal.</p> <!-- ______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="Use2User">Interaction and relationship between <tt>User</tt> and <tt>Use</tt> objects</a> -</div> +<h4> + <a name="Use2User"> + Interaction and relationship between <tt>User</tt> and <tt>Use</tt> objects + </a> +</h4> <div class="doc_text"> <p> @@ -2878,9 +2880,9 @@ enforce the following memory layouts:</p> is stored in each <tt>Use</tt> object in the member <tt>Use::Prev</tt>)</i> <!-- ______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="Waymarking">The waymarking algorithm</a> -</div> +</h4> <div class="doc_text"> <p> @@ -2919,9 +2921,9 @@ stops, so that the <i>worst case is 20 memory accesses</i> when there are 1000 <tt>Use</tt> objects associated with a <tt>User</tt>.</p> <!-- ______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="ReferenceImpl">Reference implementation</a> -</div> +</h4> <div class="doc_text"> <p> @@ -3009,9 +3011,9 @@ OK, passed 500 tests. </pre> <!-- ______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="Tagging">Tagging considerations</a> -</div> +</h4> <p> To maintain the invariant that the 2 LSBits of each <tt>Use**</tt> in <tt>Use</tt> @@ -3028,9 +3030,9 @@ the LSBit set. (Portability is relying on the fact that all known compilers plac </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="coreclasses">The Core LLVM Class Hierarchy Reference </a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -3045,9 +3047,9 @@ the <tt>lib/VMCore</tt> directory.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="Type">The <tt>Type</tt> class and Derived Types</a> -</div> +</h3> <div class="doc_text"> @@ -3067,9 +3069,9 @@ the <tt>lib/VMCore</tt> directory.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="m_Type">Important Public Methods</a> -</div> +</h4> <div class="doc_text"> @@ -3089,9 +3091,9 @@ the <tt>lib/VMCore</tt> directory.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="derivedtypes">Important Derived Types</a> -</div> +</h4> <div class="doc_text"> <dl> <dt><tt>IntegerType</tt></dt> @@ -3157,9 +3159,9 @@ the <tt>lib/VMCore</tt> directory.</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="Module">The <tt>Module</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -3179,9 +3181,9 @@ helpful member functions that try to make common operations easy.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="m_Module">Important Public Members of the <tt>Module</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -3284,9 +3286,9 @@ provide a name for it (probably based on the name of the translation unit).</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="Value">The <tt>Value</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -3342,9 +3344,9 @@ simplifies the representation and makes it easier to manipulate.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="m_Value">Important Public Members of the <tt>Value</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -3394,9 +3396,9 @@ Inst->replaceAllUsesWith(ConstVal); </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="User">The <tt>User</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -3420,9 +3422,9 @@ information in LLVM.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="m_User">Important Public Members of the <tt>User</tt> class</a> -</div> +</h4> <div class="doc_text"> @@ -3448,9 +3450,9 @@ the operands of a <tt>User</tt>.</p></li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="Instruction">The <tt>Instruction</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -3486,10 +3488,11 @@ this file confuses doxygen, so these enum values don't show up correctly in the </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="s_Instruction">Important Subclasses of the <tt>Instruction</tt> - class</a> -</div> +<h4> + <a name="s_Instruction"> + Important Subclasses of the <tt>Instruction</tt> class + </a> +</h4> <div class="doc_text"> <ul> <li><tt><a name="BinaryOperator">BinaryOperator</a></tt> @@ -3509,10 +3512,11 @@ this file confuses doxygen, so these enum values don't show up correctly in the </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="m_Instruction">Important Public Members of the <tt>Instruction</tt> - class</a> -</div> +<h4> + <a name="m_Instruction"> + Important Public Members of the <tt>Instruction</tt> class + </a> +</h4> <div class="doc_text"> @@ -3535,9 +3539,9 @@ and it has no name</p></li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="Constant">The <tt>Constant</tt> class and subclasses</a> -</div> +</h3> <div class="doc_text"> @@ -3550,7 +3554,7 @@ a subclass, which represents the address of a global variable or function. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection">Important Subclasses of Constant </div> +<h4>Important Subclasses of Constant</h4> <div class="doc_text"> <ul> <li>ConstantInt : This subclass of Constant represents an integer constant of @@ -3601,9 +3605,9 @@ a subclass, which represents the address of a global variable or function. <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="GlobalValue">The <tt>GlobalValue</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -3648,10 +3652,11 @@ Language Reference Manual</a>.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="m_GlobalValue">Important Public Members of the <tt>GlobalValue</tt> - class</a> -</div> +<h4> + <a name="m_GlobalValue"> + Important Public Members of the <tt>GlobalValue</tt> class + </a> +</h4> <div class="doc_text"> @@ -3670,9 +3675,9 @@ GlobalValue is currently embedded into.</p></li> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="Function">The <tt>Function</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -3724,10 +3729,11 @@ is its address (after linking) which is guaranteed to be constant.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="m_Function">Important Public Members of the <tt>Function</tt> - class</a> -</div> +<h4> + <a name="m_Function"> + Important Public Members of the <tt>Function</tt> class + </a> +</h4> <div class="doc_text"> @@ -3808,9 +3814,9 @@ iterator<br> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="GlobalVariable">The <tt>GlobalVariable</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -3837,10 +3843,11 @@ never change at runtime).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="m_GlobalVariable">Important Public Members of the - <tt>GlobalVariable</tt> class</a> -</div> +<h4> + <a name="m_GlobalVariable"> + Important Public Members of the <tt>GlobalVariable</tt> class + </a> +</h4> <div class="doc_text"> @@ -3882,9 +3889,9 @@ never change at runtime).</p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="BasicBlock">The <tt>BasicBlock</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -3914,10 +3921,11 @@ like branches and can go in the switch tables. <tt>BasicBlock</tt>s have type </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="m_BasicBlock">Important Public Members of the <tt>BasicBlock</tt> - class</a> -</div> +<h4> + <a name="m_BasicBlock"> + Important Public Members of the <tt>BasicBlock</tt> class + </a> +</h4> <div class="doc_text"> <ul> @@ -3973,9 +3981,9 @@ returned.</p></li> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="Argument">The <tt>Argument</tt> class</a> -</div> +</h3> <div class="doc_text"> diff --git a/docs/Projects.html b/docs/Projects.html index d7f4c89..8ba8783 100644 --- a/docs/Projects.html +++ b/docs/Projects.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">Creating an LLVM Project</div> +<h1>Creating an LLVM Project</h1> <ol> <li><a href="#overview">Overview</a></li> @@ -30,7 +30,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="overview">Overview</a></div> +<h2><a name="overview">Overview</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -73,9 +73,9 @@ provide enough information on how to write your own Makefiles.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="create">Create a Project from the Sample Project</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -145,9 +145,9 @@ project should build.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="source">Source Tree Layout</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -230,9 +230,9 @@ your <b>tools</b> directory.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="makefiles">Writing LLVM Style Makefiles</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -245,9 +245,9 @@ do:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="reqVars">Required Variables</a> -</div> +</h3> <div class="doc_text"> @@ -263,9 +263,9 @@ do:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="varsBuildDir">Variables for Building Subdirectories</a> -</div> +</h3> <div class="doc_text"> @@ -294,9 +294,9 @@ do:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="varsBuildLib">Variables for Building Libraries</a> -</div> +</h3> <div class="doc_text"> @@ -325,9 +325,9 @@ do:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="varsBuildProg">Variables for Building Programs</a> -</div> +</h3> <div class="doc_text"> @@ -368,9 +368,9 @@ do:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="miscVars">Miscellaneous Variables</a> -</div> +</h3> <div class="doc_text"> @@ -399,9 +399,9 @@ do:</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="objcode">Placement of Object Code</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -427,9 +427,9 @@ whether you do a Debug, Release, or Profile build.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="help">Further Help</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/SourceLevelDebugging.html b/docs/SourceLevelDebugging.html index 544b914..9e6b579 100644 --- a/docs/SourceLevelDebugging.html +++ b/docs/SourceLevelDebugging.html @@ -8,7 +8,7 @@ </head> <body> -<div class="doc_title">Source Level Debugging with LLVM</div> +<h1>Source Level Debugging with LLVM</h1> <table class="layout" style="width:100%"> <tr class="layout"> @@ -68,7 +68,7 @@ height="369"> <!-- *********************************************************************** --> -<div class="doc_section"><a name="introduction">Introduction</a></div> +<h2><a name="introduction">Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -83,9 +83,9 @@ height="369"> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="phil">Philosophy behind LLVM debugging information</a> -</div> +</h3> <div class="doc_text"> @@ -133,9 +133,9 @@ height="369"> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="consumers">Debug information consumers</a> -</div> +</h3> <div class="doc_text"> @@ -157,9 +157,9 @@ height="369"> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="debugopt">Debugging optimized code</a> -</div> +</h3> <div class="doc_text"> @@ -227,9 +227,9 @@ height="369"> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="format">Debugging information format</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -268,9 +268,9 @@ height="369"> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="debug_info_descriptors">Debug information descriptors</a> -</div> +</h3> <div class="doc_text"> @@ -315,9 +315,9 @@ height="369"> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_compile_units">Compile unit descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -351,9 +351,9 @@ height="369"> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_files">File descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -380,9 +380,9 @@ height="369"> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_global_variables">Global variable descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -413,9 +413,9 @@ global variables are collected by named metadata <tt>!llvm.dbg.gv</tt>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_subprograms">Subprogram descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -456,9 +456,9 @@ global variables are collected by named metadata <tt>!llvm.dbg.gv</tt>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_blocks">Block descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -482,9 +482,9 @@ global variables are collected by named metadata <tt>!llvm.dbg.gv</tt>.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_basic_type">Basic type descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -534,9 +534,9 @@ DW_ATE_unsigned_char = 8 </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_derived_type">Derived type descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -606,9 +606,9 @@ DW_TAG_restrict_type = 55 </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_composite_type">Composite type descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -693,9 +693,9 @@ DW_TAG_inheritance = 28 </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_subrange">Subrange descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -719,9 +719,9 @@ DW_TAG_inheritance = 28 </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_enumeration">Enumerator descriptors</a> -</div> +</h4> <div class="doc_text"> @@ -743,9 +743,9 @@ DW_TAG_inheritance = 28 </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_variables">Local variables</a> -</div> +</h4> <div class="doc_text"> @@ -787,9 +787,9 @@ DW_TAG_return_variable = 258 </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="format_common_intrinsics">Debugger intrinsic functions</a> -</div> +</h3> <div class="doc_text"> @@ -799,9 +799,9 @@ DW_TAG_return_variable = 258 </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_common_declare">llvm.dbg.declare</a> -</div> +</h4> <div class="doc_text"> <pre> @@ -814,9 +814,9 @@ DW_TAG_return_variable = 258 </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="format_common_value">llvm.dbg.value</a> -</div> +</h4> <div class="doc_text"> <pre> @@ -831,9 +831,9 @@ DW_TAG_return_variable = 258 </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="format_common_lifetime">Object lifetimes and scoping</a> -</div> +</h3> <div class="doc_text"> <p>In many languages, the local variables in functions can have their lifetimes @@ -994,9 +994,9 @@ call void @llvm.dbg.declare(metadata, metadata !12), !dbg !14 </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="ccxx_frontend">C/C++ front-end specific debug information</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1023,9 +1023,9 @@ call void @llvm.dbg.declare(metadata, metadata !12), !dbg !14 </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ccxx_compile_units">C/C++ source file information</a> -</div> +</h3> <div class="doc_text"> @@ -1101,9 +1101,9 @@ using <tt>Instruction::getMetadata()</tt> and </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ccxx_global_variable">C/C++ global variable information</a> -</div> +</h3> <div class="doc_text"> @@ -1171,9 +1171,9 @@ int MyGlobal = 100; </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ccxx_subprogram">C/C++ function information</a> -</div> +</h3> <div class="doc_text"> @@ -1228,9 +1228,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ccxx_basic_types">C/C++ basic types</a> -</div> +</h3> <div class="doc_text"> @@ -1239,9 +1239,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_type_bool">bool</a> -</div> +</h4> <div class="doc_text"> @@ -1265,9 +1265,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_char">char</a> -</div> +</h4> <div class="doc_text"> @@ -1291,9 +1291,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_unsigned_char">unsigned char</a> -</div> +</h4> <div class="doc_text"> @@ -1317,9 +1317,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_short">short</a> -</div> +</h4> <div class="doc_text"> @@ -1343,9 +1343,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_unsigned_short">unsigned short</a> -</div> +</h4> <div class="doc_text"> @@ -1369,9 +1369,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_int">int</a> -</div> +</h4> <div class="doc_text"> @@ -1394,9 +1394,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_unsigned_int">unsigned int</a> -</div> +</h4> <div class="doc_text"> @@ -1420,9 +1420,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_long_long">long long</a> -</div> +</h4> <div class="doc_text"> @@ -1446,9 +1446,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_unsigned_long_long">unsigned long long</a> -</div> +</h4> <div class="doc_text"> @@ -1472,9 +1472,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_float">float</a> -</div> +</h4> <div class="doc_text"> @@ -1498,9 +1498,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"> +<h4> <a name="ccxx_basic_double">double</a> -</div> +</h4> <div class="doc_text"> @@ -1524,9 +1524,9 @@ define i32 @main(i32 %argc, i8** %argv) { </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ccxx_derived_types">C/C++ derived types</a> -</div> +</h3> <div class="doc_text"> @@ -1609,9 +1609,9 @@ typedef const int *IntPtr; </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ccxx_composite_types">C/C++ struct/union types</a> -</div> +</h3> <div class="doc_text"> @@ -1722,9 +1722,9 @@ struct Color { </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ccxx_enumeration_types">C/C++ enumeration types</a> -</div> +</h3> <div class="doc_text"> diff --git a/docs/SystemLibrary.html b/docs/SystemLibrary.html index 35a94b7..db60a47 100644 --- a/docs/SystemLibrary.html +++ b/docs/SystemLibrary.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">System Library</div> +<h1>System Library</h1> <ul> <li><a href="#abstract">Abstract</a></li> <li><a href="#requirements">Keeping LLVM Portable</a> @@ -36,7 +36,7 @@ <!-- *********************************************************************** --> -<div class="doc_section"><a name="abstract">Abstract</a></div> +<h2><a name="abstract">Abstract</a></h2> <div class="doc_text"> <p>This document provides some details on LLVM's System Library, located in the source at <tt>lib/System</tt> and <tt>include/llvm/System</tt>. The @@ -63,9 +63,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="requirements">Keeping LLVM Portable</a> -</div> +</h2> <div class="doc_text"> <p>In order to keep LLVM portable, LLVM developers should adhere to a set of portability rules associated with the System Library. Adherence to these rules @@ -75,8 +75,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="headers">Don't Include System Headers</a> -</div> +<h3><a name="headers">Don't Include System Headers</a></h3> <div class="doc_text"> <p>Except in <tt>lib/System</tt>, no LLVM source code should directly <tt>#include</tt> a system header. Care has been taken to remove all such @@ -91,8 +90,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="expose">Don't Expose System Headers</a> -</div> +<h3><a name="expose">Don't Expose System Headers</a></h3> <div class="doc_text"> <p>The System Library must shield LLVM from <em>all</em> system headers. To obtain system level functionality, LLVM source must @@ -103,7 +101,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="c_headers">Use Standard C Headers</a></div> +<h3><a name="c_headers">Use Standard C Headers</a></h3> <div class="doc_text"> <p>The <em>standard</em> C headers (the ones beginning with "c") are allowed to be exposed through the <tt>lib/System</tt> interface. These headers and @@ -113,8 +111,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="cpp_headers">Use Standard C++ Headers</a> -</div> +<h3><a name="cpp_headers">Use Standard C++ Headers</a></h3> <div class="doc_text"> <p>The <em>standard</em> C++ headers from the standard C++ library and standard template library may be exposed through the <tt>lib/System</tt> @@ -124,7 +121,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="highlev">High Level Interface</a></div> +<h3><a name="highlev">High Level Interface</a></h3> <div class="doc_text"> <p>The entry points specified in the interface of lib/System must be aimed at completing some reasonably high level task needed by LLVM. We do not want to @@ -143,7 +140,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="nounused">No Unused Functionality</a></div> +<h3><a name="nounused">No Unused Functionality</a></h3> <div class="doc_text"> <p>There must be no functionality specified in the interface of lib/System that isn't actually used by LLVM. We're not writing a general purpose @@ -153,8 +150,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="nodupl">No Duplicate Implementations</a> -</div> +<h3><a name="nodupl">No Duplicate Implementations</a></h3> <div class="doc_text"> <p>The implementation of a function for a given platform must be written exactly once. This implies that it must be possible to apply a function's @@ -165,7 +161,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="virtuals">No Virtual Methods</a></div> +<h3><a name="virtuals">No Virtual Methods</a></h3> <div class="doc_text"> <p>The System Library interfaces can be called quite frequently by LLVM. In order to make those calls as efficient as possible, we discourage the use of @@ -175,7 +171,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="nofunc">No Exposed Functions</a></div> +<h3><a name="nofunc">No Exposed Functions</a></h3> <div class="doc_text"> <p>Any functions defined by system libraries (i.e. not defined by lib/System) must not be exposed through the lib/System interface, even if the header file @@ -191,7 +187,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="nodata">No Exposed Data</a></div> +<h3><a name="nodata">No Exposed Data</a></h3> <div class="doc_text"> <p>Any data defined by system libraries (i.e. not defined by lib/System) must not be exposed through the lib/System interface, even if the header file for @@ -200,7 +196,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="softerrors">Minimize Soft Errors</a></div> +<h3><a name="softerrors">Minimize Soft Errors</a></h3> <div class="doc_text"> <p>Operating system interfaces will generally provide error results for every little thing that could go wrong. In almost all cases, you can divide these @@ -239,8 +235,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="throw_spec">No throw Specifications</a> -</div> +<h3><a name="throw_spec">No throw Specifications</a></h3> <div class="doc_text"> <p>None of the lib/System interface functions may be declared with C++ <tt>throw()</tt> specifications on them. This requirement makes sure that the @@ -252,7 +247,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="organization">Code Organization</a></div> +<h3><a name="organization">Code Organization</a></h3> <div class="doc_text"> <p>Implementations of the System Library interface are separated by their general class of operating system. Currently only Unix and Win32 classes are @@ -281,7 +276,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="semantics">Consistent Semantics</a></div> +<h3><a name="semantics">Consistent Semantics</a></h3> <div class="doc_text"> <p>The implementation of a lib/System interface can vary drastically between platforms. That's okay as long as the end result of the interface function @@ -296,7 +291,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="bug">Bug 351</a></div> +<h3><a name="bug">Bug 351</a></h3> <div class="doc_text"> <p>See <a href="http://llvm.org/PR351">bug 351</a> for further details on the progress of this work</p> diff --git a/docs/TableGenFundamentals.html b/docs/TableGenFundamentals.html index 90ac804..7efdfbb 100644 --- a/docs/TableGenFundamentals.html +++ b/docs/TableGenFundamentals.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">TableGen Fundamentals</div> +<h1>TableGen Fundamentals</h1> <div class="doc_text"> <ul> @@ -50,7 +50,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="introduction">Introduction</a></div> +<h2><a name="introduction">Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -75,7 +75,7 @@ distribution, respectively.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="concepts">Basic concepts</a></div> +<h3><a name="concepts">Basic concepts</a></h3> <div class="doc_text"> @@ -112,7 +112,7 @@ multiclass, as if they were declared in the current multiclass.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="example">An example record</a></div> +<h3><a name="example">An example record</a></h3> <div class="doc_text"> @@ -212,7 +212,7 @@ abstractions they prefer to use when describing their information.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="running">Running TableGen</a></div> +<h3><a name="running">Running TableGen</a></h3> <div class="doc_text"> @@ -258,7 +258,7 @@ what you need and formats it in the appropriate way.</p> <!-- *********************************************************************** --> -<div class="doc_section"><a name="syntax">TableGen syntax</a></div> +<h2><a name="syntax">TableGen syntax</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -271,10 +271,10 @@ This section describes the syntax and the constructs allowed in a TableGen file. </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="primitives">TableGen primitives</a></div> +<h3><a name="primitives">TableGen primitives</a></h3> <!-- --------------------------------------------------------------------------> -<div class="doc_subsubsection"><a name="comments">TableGen comments</a></div> +<h4><a name="comments">TableGen comments</a></h4> <div class="doc_text"> @@ -284,9 +284,9 @@ the line, and it also supports <b>nestable</b> "<tt>/* */</tt>" comments.</p> </div> <!-- --------------------------------------------------------------------------> -<div class="doc_subsubsection"> +<h4> <a name="types">The TableGen type system</a> -</div> +</h4> <div class="doc_text"> @@ -344,9 +344,9 @@ needed.</p> </div> <!-- --------------------------------------------------------------------------> -<div class="doc_subsubsection"> +<h4> <a name="values">TableGen values and expressions</a> -</div> +</h4> <div class="doc_text"> @@ -434,9 +434,9 @@ to a "<tt>bits<4></tt>" value, for example.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="classesdefs">Classes and definitions</a> -</div> +</h3> <div class="doc_text"> @@ -476,9 +476,9 @@ subclasses to override them as they wish.</p> </div> <!----------------------------------------------------------------------------> -<div class="doc_subsubsection"> +<h4> <a name="valuedef">Value definitions</a> -</div> +</h4> <div class="doc_text"> @@ -492,9 +492,9 @@ equal sign. Value definitions require terminating semicolons.</p> </div> <!-- --------------------------------------------------------------------------> -<div class="doc_subsubsection"> +<h4> <a name="recordlet">'let' expressions</a> -</div> +</h4> <div class="doc_text"> @@ -519,9 +519,9 @@ because the <tt>D</tt> class overrode its value.</p> </div> <!-- --------------------------------------------------------------------------> -<div class="doc_subsubsection"> +<h4> <a name="templateargs">Class template arguments</a> -</div> +</h4> <div class="doc_text"> @@ -610,9 +610,9 @@ X86 backend.</p> </div> <!-- --------------------------------------------------------------------------> -<div class="doc_subsubsection"> +<h4> <a name="multiclass">Multiclass definitions and instances</a> -</div> +</h4> <div class="doc_text"> @@ -773,14 +773,14 @@ before them. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="filescope">File scope entities</a> -</div> +</h3> <!-- --------------------------------------------------------------------------> -<div class="doc_subsubsection"> +<h4> <a name="include">File inclusion</a> -</div> +</h4> <div class="doc_text"> <p>TableGen supports the '<tt>include</tt>' token, which textually substitutes @@ -797,9 +797,9 @@ keyword. Example:</p> </div> <!-- --------------------------------------------------------------------------> -<div class="doc_subsubsection"> +<h4> <a name="globallet">'let' expressions</a> -</div> +</h4> <div class="doc_text"> @@ -865,7 +865,7 @@ several levels of multiclass instanciations. This also avoids the need of using </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="codegen">Code Generator backend info</a></div> +<h2><a name="codegen">Code Generator backend info</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -882,7 +882,7 @@ patterns:</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="backends">TableGen backends</a></div> +<h2><a name="backends">TableGen backends</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/TestingGuide.html b/docs/TestingGuide.html index 5886c85..3d6aa92 100644 --- a/docs/TestingGuide.html +++ b/docs/TestingGuide.html @@ -7,9 +7,9 @@ </head> <body> -<div class="doc_title"> +<h1> LLVM Testing Infrastructure Guide -</div> +</h1> <ol> <li><a href="#overview">Overview</a></li> @@ -52,7 +52,7 @@ </div> <!--=========================================================================--> -<div class="doc_section"><a name="overview">Overview</a></div> +<h2><a name="overview">Overview</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -64,7 +64,7 @@ use it, and how to add and run tests.</p> </div> <!--=========================================================================--> -<div class="doc_section"><a name="requirements">Requirements</a></div> +<h2><a name="requirements">Requirements</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -76,7 +76,7 @@ as <a href="http://python.org">Python</a> 2.4 or later.</p> </div> <!--=========================================================================--> -<div class="doc_section"><a name="org">LLVM testing infrastructure organization</a></div> +<h2><a name="org">LLVM testing infrastructure organization</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -92,7 +92,7 @@ in subversion. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="regressiontests">Regression tests</a></div> +<h3><a name="regressiontests">Regression tests</a></h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> @@ -119,7 +119,7 @@ application or benchmark.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="testsuite">Test suite</a></div> +<h3><a name="testsuite">Test suite</a></h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> @@ -144,8 +144,7 @@ generates code.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="debuginfotests">Debugging Information -tests</a></div> +<h3><a name="debuginfotests">Debugging Information tests</a></h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> @@ -161,7 +160,7 @@ test suite for more information . This test suite is located in the </div> <!--=========================================================================--> -<div class="doc_section"><a name="quick">Quick start</a></div> +<h2><a name="quick">Quick start</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -179,7 +178,7 @@ the <tt>test-suite</tt> directory will be automatically configured. Alternatively, you can configure the <tt>test-suite</tt> module manually.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="quickregressiontests">Regression tests</a></div> +<h3><a name="quickregressiontests">Regression tests</a></h3> <!-- _______________________________________________________________________ --> <p>To run all of the LLVM regression tests, use master Makefile in the <tt>llvm/test</tt> directory:</p> @@ -240,7 +239,7 @@ script which is built as part of LLVM. For example, to run the 'lit' man page.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="quicktestsuite">Test suite</a></div> +<h3><a name="quicktestsuite">Test suite</a></h3> <!-- _______________________________________________________________________ --> <p>To run the comprehensive test suite (tests that compile and execute whole @@ -292,8 +291,7 @@ that subdirectory.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="quickdebuginfotests">Debugging Information -tests</a></div> +<h3><a name="quickdebuginfotests">Debugging Information tests</a></h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> @@ -312,7 +310,7 @@ clang/test directory. </p> </div> <!--=========================================================================--> -<div class="doc_section"><a name="rtstructure">Regression test structure</a></div> +<h2><a name="rtstructure">Regression test structure</a></h2> <!--=========================================================================--> <div class="doc_text"> <p>The LLVM regression tests are driven by 'lit' and are located in @@ -339,7 +337,7 @@ clang/test directory. </p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="rtcustom">Writing new regression tests</a></div> +<h3><a name="rtcustom">Writing new regression tests</a></h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> <p>The regression test structure is very simple, but does require some @@ -493,7 +491,7 @@ negatives).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="FileCheck">The FileCheck utility</a></div> +<h3><a name="FileCheck">The FileCheck utility</a></h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> @@ -565,8 +563,9 @@ file.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a -name="FileCheck-check-prefix">The FileCheck -check-prefix option</a></div> +<h4> + <a name="FileCheck-check-prefix">The FileCheck -check-prefix option</a> +</h4> <div class="doc_text"> @@ -599,8 +598,9 @@ both 32-bit and 64-bit code generation.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a -name="FileCheck-CHECK-NEXT">The "CHECK-NEXT:" directive</a></div> +<h4> + <a name="FileCheck-CHECK-NEXT">The "CHECK-NEXT:" directive</a> +</h4> <div class="doc_text"> @@ -639,8 +639,9 @@ directive in a file.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a -name="FileCheck-CHECK-NOT">The "CHECK-NOT:" directive</a></div> +<h4> + <a name="FileCheck-CHECK-NOT">The "CHECK-NOT:" directive</a> +</h4> <div class="doc_text"> @@ -669,8 +670,9 @@ define i8 @coerce_offset0(i32 %V, i32* %P) { </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a -name="FileCheck-Matching">FileCheck Pattern Matching Syntax</a></div> +<h4> + <a name="FileCheck-Matching">FileCheck Pattern Matching Syntax</a> +</h4> <div class="doc_text"> @@ -701,8 +703,9 @@ braces explicitly from the input, you can use something ugly like </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"><a -name="FileCheck-Variables">FileCheck Variables</a></div> +<h4> + <a name="FileCheck-Variables">FileCheck Variables</a> +</h4> <div class="doc_text"> @@ -740,8 +743,7 @@ define two separate CHECK lines that match on the same line. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="rtvars">Variables and -substitutions</a></div> +<h3><a name="rtvars">Variables and substitutions</a></h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> <p>With a RUN line there are a number of substitutions that are permitted. In @@ -836,7 +838,7 @@ substitutions</a></div> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"><a name="rtfeatures">Other Features</a></div> +<h3><a name="rtfeatures">Other Features</a></h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> <p>To make RUN line writing easier, there are several shell scripts located @@ -894,8 +896,7 @@ substitutions</a></div> </div> <!--=========================================================================--> -<div class="doc_section"><a name="testsuitestructure">Test suite -Structure</a></div> +<h2><a name="testsuitestructure">Test suite Structure</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -963,7 +964,7 @@ will help you separate benign warnings from actual test failures.</p> </div> <!--=========================================================================--> -<div class="doc_section"><a name="testsuiterun">Running the test suite</a></div> +<h2><a name="testsuiterun">Running the test suite</a></h2> <!--=========================================================================--> <div class="doc_text"> @@ -1024,8 +1025,9 @@ the test code or configure script changes).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> -<a name="testsuiteexternal">Configuring External Tests</a></div> +<h3> + <a name="testsuiteexternal">Configuring External Tests</a> +</h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> @@ -1056,8 +1058,9 @@ the test code or configure script changes).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> -<a name="testsuitetests">Running different tests</a></div> +<h3> + <a name="testsuitetests">Running different tests</a> +</h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> <p>In addition to the regular "whole program" tests, the <tt>test-suite</tt> @@ -1079,8 +1082,9 @@ LLVM.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> -<a name="testsuiteoutput">Generating test output</a></div> +<h3> + <a name="testsuiteoutput">Generating test output</a> +</h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> <p>There are a number of ways to run the tests and generate output. The most @@ -1110,8 +1114,9 @@ LLVM.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> -<a name="testsuitecustom">Writing custom tests for the test suite</a></div> +<h3> + <a name="testsuitecustom">Writing custom tests for the test suite</a> +</h3> <!-- _______________________________________________________________________ --> <div class="doc_text"> diff --git a/docs/UsingLibraries.html b/docs/UsingLibraries.html index 28c1e08..e8067ed 100644 --- a/docs/UsingLibraries.html +++ b/docs/UsingLibraries.html @@ -5,7 +5,7 @@ <link rel="stylesheet" href="llvm.css" type="text/css"> </head> <body> -<div class="doc_title">Using The LLVM Libraries</div> +<h1>Using The LLVM Libraries</h1> <ol> <li><a href="#abstract">Abstract</a></li> <li><a href="#introduction">Introduction</a></li> @@ -30,7 +30,7 @@ guide</a>.</p> <!-- ======================================================================= --> -<div class="doc_section"><a name="abstract">Abstract</a></div> +<h2><a name="abstract">Abstract</a></h2> <div class="doc_text"> <p>Amongst other things, LLVM is a toolkit for building compilers, linkers, runtime executives, virtual machines, and other program execution related @@ -45,7 +45,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_section"> <a name="introduction">Introduction</a></div> +<h2><a name="introduction">Introduction</a></h2> <div class="doc_text"> <p>If you're writing a compiler, virtual machine, or any other utility based on LLVM, you'll need to figure out which of the many libraries files you will @@ -74,7 +74,7 @@ correct for your tool can sometimes be challenging. </div> <!-- ======================================================================= --> -<div class="doc_section"><a name="descriptions"></a>Library Descriptions</div> +<h2><a name="descriptions">Library Descriptions</a></h2> <div class="doc_text"> <p>The table below categorizes each library <table style="text-align:left"> @@ -152,7 +152,7 @@ </div> <!-- ======================================================================= --> -<div class="doc_section"><a name="dependencies"></a>Using llvm-config</div> +<h2><a name="dependencies">Using llvm-config</a></h2> <div class="doc_text"> <p>The <tt>llvm-config</tt> tool is a perl script that produces on its output various kinds of information. For example, the source or object directories @@ -401,14 +401,15 @@ </div> <!-- ======================================================================= --> -<div class="doc_section"><a name="rot">Linkage Rules Of Thumb</a></div> +<h2><a name="rot">Linkage Rules Of Thumb</a></h2> <div class="doc_text"> <p>This section contains various "rules of thumb" about what files you should link into your programs.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="always">Always Link LLVMCore, LLVMSupport, - and LLVMSystem</a></div> +<h3> + <a name="always">Always Link LLVMCore, LLVMSupport, and LLVMSystem</a> +</h3> <div class="doc_text"> <p>No matter what you do with LLVM, the last three entries in the value of your LLVMLIBS make variable should always be: @@ -416,8 +417,9 @@ programs that don't depend on these three.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"><a name="onlyone">Never link both archive and - re-linked library</a></div> +<h3> + <a name="onlyone">Never link both archive and re-linked library</a> +</h3> <div class="doc_text"> <p>There is never any point to linking both the re-linked (<tt>.o</tt>) and the archive (<tt>.a</tt>) versions of a library. Since the re-linked version diff --git a/docs/WritingAnLLVMBackend.html b/docs/WritingAnLLVMBackend.html index 4798cdf..c8dcb8a 100644 --- a/docs/WritingAnLLVMBackend.html +++ b/docs/WritingAnLLVMBackend.html @@ -9,9 +9,9 @@ <body> -<div class="doc_title"> +<h1> Writing an LLVM Compiler Backend -</div> +</h1> <ol> <li><a href="#intro">Introduction</a> @@ -61,9 +61,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="intro">Introduction</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -93,9 +93,9 @@ conventions. </div> -<div class="doc_subsection"> +<h3> <a name="Audience">Audience</a> -</div> +</h3> <div class="doc_text"> @@ -106,9 +106,9 @@ generate code for a specific hardware or software target. </div> -<div class="doc_subsection"> +<h3> <a name="Prerequisite">Prerequisite Reading</a> -</div> +</h3> <div class="doc_text"> @@ -155,9 +155,9 @@ machine dependent features. </div> -<div class="doc_subsection"> +<h3> <a name="Basic">Basic Steps</a> -</div> +</h3> <div class="doc_text"> @@ -220,9 +220,9 @@ that the class will need and which components will need to be subclassed. </div> -<div class="doc_subsection"> +<h3> <a name="Preliminaries">Preliminaries</a> -</div> +</h3> <div class="doc_text"> @@ -282,9 +282,9 @@ regenerate configure by running <tt>./autoconf/AutoRegen.sh</tt>. </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="TargetMachine">Target Machine</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -424,9 +424,9 @@ SparcTargetMachine::SparcTargetMachine(const Module &M, const std::string &a </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="TargetRegistration">Target Registration</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -480,9 +480,9 @@ For more information, see </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="RegisterSet">Register Set and Register Classes</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -517,9 +517,9 @@ implementation of <tt>XXXRegisterInfo</tt> requires hand-coding. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="RegisterDef">Defining a Register</a> -</div> +</h3> <div class="doc_text"> @@ -700,9 +700,9 @@ fields of a register's TargetRegisterDesc. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="RegisterClassDef">Defining a Register Class</a> -</div> +</h3> <div class="doc_text"> @@ -894,10 +894,10 @@ namespace SP { // Register class instances </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="implementRegister">Implement a subclass of</a> <a href="CodeGenerator.html#targetregisterinfo">TargetRegisterInfo</a> -</div> +</h3> <div class="doc_text"> @@ -934,9 +934,9 @@ implementation in <tt>SparcRegisterInfo.cpp</tt>: </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="InstructionSet">Instruction Set</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1191,9 +1191,9 @@ correspond to the values in <tt>SparcInstrInfo.td</tt>. I.e., </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="operandMapping">Instruction Operand Mapping</a> -</div> +</h3> <div class="doc_text"> @@ -1283,10 +1283,10 @@ the <tt>rd</tt>, <tt>rs1</tt>, and <tt>rs2</tt> fields respectively. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="implementInstr">Implement a subclass of </a> <a href="CodeGenerator.html#targetinstrinfo">TargetInstrInfo</a> -</div> +</h3> <div class="doc_text"> @@ -1327,9 +1327,9 @@ implementation in <tt>SparcInstrInfo.cpp</tt>: </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="branchFolding">Branch Folding and If Conversion</a> -</div> +</h3> <div class="doc_text"> <p> @@ -1486,9 +1486,9 @@ branch. </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="InstructionSelector">Instruction Selector</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1645,9 +1645,9 @@ SDNode *Select_ISD_STORE(const SDValue &N) { </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="LegalizePhase">The SelectionDAG Legalize Phase</a> -</div> +</h3> <div class="doc_text"> @@ -1719,9 +1719,9 @@ contains examples of all four <tt>LegalAction</tt> values. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="promote">Promote</a> -</div> +</h4> <div class="doc_text"> @@ -1742,9 +1742,9 @@ setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote); </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="expand">Expand</a> -</div> +</h4> <div class="doc_text"> @@ -1767,9 +1767,9 @@ setOperationAction(ISD::FCOS, MVT::f32, Expand); </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="custom">Custom</a> -</div> +</h4> <div class="doc_text"> @@ -1833,9 +1833,9 @@ static SDValue LowerFP_TO_SINT(SDValue Op, SelectionDAG &DAG) { </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="legal">Legal</a> -</div> +</h4> <div class="doc_text"> @@ -1866,9 +1866,9 @@ if (TM.getSubtarget<SparcSubtarget>().isV9()) </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="callingConventions">Calling Conventions</a> -</div> +</h3> <div class="doc_text"> @@ -2016,9 +2016,9 @@ def RetCC_X86_32 : CallingConv<[ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="assemblyPrinter">Assembly Printer</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -2171,9 +2171,9 @@ output. </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="subtargetSupport">Subtarget Support</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -2289,9 +2289,9 @@ XXXSubtarget::XXXSubtarget(const Module &M, const std::string &FS) { </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="jitSupport">JIT Support</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -2336,9 +2336,9 @@ that write data (in bytes, words, strings, etc.) to the output stream. </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="mce">Machine Code Emitter</a> -</div> +</h3> <div class="doc_text"> @@ -2478,9 +2478,9 @@ enum RelocationType { </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="targetJITInfo">Target JIT Info</a> -</div> +</h3> <div class="doc_text"> diff --git a/docs/WritingAnLLVMPass.html b/docs/WritingAnLLVMPass.html index 7e15245..3316179 100644 --- a/docs/WritingAnLLVMPass.html +++ b/docs/WritingAnLLVMPass.html @@ -8,9 +8,9 @@ </head> <body> -<div class="doc_title"> +<h1> Writing an LLVM Pass -</div> +</h1> <ol> <li><a href="#introduction">Introduction - What is a pass?</a></li> @@ -121,9 +121,9 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="introduction">Introduction - What is a pass?</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -156,9 +156,9 @@ more advanced features are discussed.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="quickstart">Quick Start - Writing hello world</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -172,9 +172,9 @@ source tree in the <tt>lib/Transforms/Hello</tt> directory.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="makefile">Setting up the build environment</a> -</div> +</h3> <div class="doc_text"> @@ -220,9 +220,9 @@ the pass itself.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="basiccode">Basic code required</a> -</div> +</h3> <div class="doc_text"> @@ -356,9 +356,9 @@ them) to be useful.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="running">Running a pass with <tt>opt</tt></a> -</div> +</h3> <div class="doc_text"> @@ -447,9 +447,9 @@ about some more details of how they work and how to use them.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="passtype">Pass classes and requirements</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -470,9 +470,9 @@ slow.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ImmutablePass">The <tt>ImmutablePass</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -493,9 +493,9 @@ invalidated, and are never "run".</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="ModulePass">The <tt>ModulePass</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -522,9 +522,9 @@ following signature:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="runOnModule">The <tt>runOnModule</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -539,9 +539,9 @@ false otherwise.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="CallGraphSCCPass">The <tt>CallGraphSCCPass</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -587,10 +587,11 @@ false if they didn't.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="doInitialization_scc">The <tt>doInitialization(CallGraph &)</tt> - method</a> -</div> +<h4> + <a name="doInitialization_scc"> + The <tt>doInitialization(CallGraph &)</tt> method + </a> +</h4> <div class="doc_text"> @@ -609,9 +610,9 @@ fast).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="runOnSCC">The <tt>runOnSCC</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -626,10 +627,11 @@ otherwise.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="doFinalization_scc">The <tt>doFinalization(CallGraph - &)</tt> method</a> -</div> +<h4> + <a name="doFinalization_scc"> + The <tt>doFinalization(CallGraph &)</tt> method + </a> +</h4> <div class="doc_text"> @@ -645,9 +647,9 @@ program being compiled.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="FunctionPass">The <tt>FunctionPass</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -677,10 +679,11 @@ should return true if they modified the program, or false if they didn't.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="doInitialization_mod">The <tt>doInitialization(Module &)</tt> - method</a> -</div> +<h4> + <a name="doInitialization_mod"> + The <tt>doInitialization(Module &)</tt> method + </a> +</h4> <div class="doc_text"> @@ -706,9 +709,9 @@ free functions that it needs, adding prototypes to the module if necessary.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="runOnFunction">The <tt>runOnFunction</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -723,10 +726,11 @@ be returned if the function is modified.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="doFinalization_mod">The <tt>doFinalization(Module - &)</tt> method</a> -</div> +<h4> + <a name="doFinalization_mod"> + The <tt>doFinalization(Module &)</tt> method + </a> +</h4> <div class="doc_text"> @@ -742,9 +746,9 @@ program being compiled.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="LoopPass">The <tt>LoopPass</tt> class </a> -</div> +</h3> <div class="doc_text"> @@ -760,11 +764,11 @@ program, or false if they didn't. </p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="doInitialization_loop">The <tt>doInitialization(Loop *, - LPPassManager &)</tt> - method</a> -</div> +<h4> + <a name="doInitialization_loop"> + The <tt>doInitialization(Loop *,LPPassManager &)</tt> method + </a> +</h4> <div class="doc_text"> @@ -783,9 +787,9 @@ information.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="runOnLoop">The <tt>runOnLoop</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -801,9 +805,9 @@ should be used to update loop nest.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="doFinalization_loop">The <tt>doFinalization()</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -819,9 +823,9 @@ program being compiled. </p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="RegionPass">The <tt>RegionPass</tt> class </a> -</div> +</h3> <div class="doc_text"> @@ -838,11 +842,11 @@ methods should return true if they modified the program, or false if they didn n </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="doInitialization_region">The <tt>doInitialization(Region *, - RGPassManager &)</tt> - method</a> -</div> +<h4> + <a name="doInitialization_region"> + The <tt>doInitialization(Region *, RGPassManager &)</tt> method + </a> +</h4> <div class="doc_text"> @@ -861,9 +865,9 @@ information.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="runOnRegion">The <tt>runOnRegion</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -879,9 +883,9 @@ should be used to update region tree.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="doFinalization_region">The <tt>doFinalization()</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -899,9 +903,9 @@ program being compiled. </p> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="BasicBlockPass">The <tt>BasicBlockPass</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -928,10 +932,11 @@ href="#FunctionPass"><tt>FunctionPass</tt></a>'s have, but also have the followi </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="doInitialization_fn">The <tt>doInitialization(Function - &)</tt> method</a> -</div> +<h4> + <a name="doInitialization_fn"> + The <tt>doInitialization(Function &)</tt> method + </a> +</h4> <div class="doc_text"> @@ -950,9 +955,9 @@ fast).</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="runOnBasicBlock">The <tt>runOnBasicBlock</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -968,10 +973,11 @@ if the basic block is modified.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="doFinalization_fn">The <tt>doFinalization(Function &)</tt> - method</a> -</div> +<h4> + <a name="doFinalization_fn"> + The <tt>doFinalization(Function &)</tt> method + </a> +</h4> <div class="doc_text"> @@ -988,9 +994,9 @@ finalization.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsection"> +<h3> <a name="MachineFunctionPass">The <tt>MachineFunctionPass</tt> class</a> -</div> +</h3> <div class="doc_text"> @@ -1020,10 +1026,11 @@ data)</li> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="runOnMachineFunction">The <tt>runOnMachineFunction(MachineFunction - &MF)</tt> method</a> -</div> +<h4> + <a name="runOnMachineFunction"> + The <tt>runOnMachineFunction(MachineFunction &MF)</tt> method + </a> +</h4> <div class="doc_text"> @@ -1047,9 +1054,9 @@ remember, you may not modify the LLVM <tt>Function</tt> or its contents from a </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="registration">Pass registration</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1072,9 +1079,9 @@ implement the virtual <tt>print</tt> method:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="print">The <tt>print</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -1097,9 +1104,9 @@ depended on.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="interaction">Specifying interactions between passes</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1122,9 +1129,9 @@ having any prerequisite passes, and invalidating <b>all</b> other passes.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="getAnalysisUsage">The <tt>getAnalysisUsage</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -1142,9 +1149,12 @@ object:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="AU::addRequired">The <tt>AnalysisUsage::addRequired<></tt> and <tt>AnalysisUsage::addRequiredTransitive<></tt> methods</a> -</div> +<h4> + <a name="AU::addRequired"> + The <tt>AnalysisUsage::addRequired<></tt> + and <tt>AnalysisUsage::addRequiredTransitive<></tt> methods + </a> +</h4> <div class="doc_text"> <p> @@ -1168,9 +1178,11 @@ pass is. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="AU::addPreserved">The <tt>AnalysisUsage::addPreserved<></tt> method</a> -</div> +<h4> + <a name="AU::addPreserved"> + The <tt>AnalysisUsage::addPreserved<></tt> method + </a> +</h4> <div class="doc_text"> <p> @@ -1203,9 +1215,11 @@ the fact that it hacks on the CFG. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="AU::examples">Example implementations of <tt>getAnalysisUsage</tt></a> -</div> +<h4> + <a name="AU::examples"> + Example implementations of <tt>getAnalysisUsage</tt> + </a> +</h4> <div class="doc_text"> @@ -1220,10 +1234,12 @@ the fact that it hacks on the CFG. </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> - <a name="getAnalysis">The <tt>getAnalysis<></tt> and -<tt>getAnalysisIfAvailable<></tt> methods</a> -</div> +<h4> + <a name="getAnalysis"> + The <tt>getAnalysis<></tt> and + <tt>getAnalysisIfAvailable<></tt> methods + </a> +</h4> <div class="doc_text"> @@ -1278,9 +1294,9 @@ if it is active. For example:</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="analysisgroup">Implementing Analysis Groups</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1305,9 +1321,9 @@ Analysis Groups.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="agconcepts">Analysis Group Concepts</a> -</div> +</h4> <div class="doc_text"> @@ -1356,9 +1372,9 @@ hypothetical example) instead.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="registerag">Using <tt>RegisterAnalysisGroup</tt></a> -</div> +</h4> <div class="doc_text"> @@ -1418,9 +1434,9 @@ pass is the default implementation for the interface.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="passStatistics">Pass Statistics</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1435,9 +1451,9 @@ line. See the <a href="http://llvm.org/docs/ProgrammersManual.html#Statistic">St <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="passmanager">What PassManager does</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1610,9 +1626,9 @@ anymore, and therefore do not have to compute it twice.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="releaseMemory">The <tt>releaseMemory</tt> method</a> -</div> +</h4> <div class="doc_text"> @@ -1636,9 +1652,9 @@ class, before the next call of <tt>run*</tt> in your pass.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="registering">Registering dynamically loaded passes</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1671,9 +1687,9 @@ register on load and unregister at unload.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> +<h3> <a name="registering_existing">Using existing registries</a> -</div> +</h3> <div class="doc_text"> @@ -1736,9 +1752,9 @@ call line to <tt>llvm/Codegen/LinkAllCodegenComponents.h</tt>.</p> <!-- _______________________________________________________________________ --> -<div class="doc_subsection"> +<h3> <a name="registering_new">Creating new registries</a> -</div> +</h3> <div class="doc_text"> @@ -1769,9 +1785,9 @@ creator.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="debughints">Using GDB with dynamically loaded passes</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1789,9 +1805,9 @@ on that.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="breakpoint">Setting a breakpoint in your pass</a> -</div> +</h4> <div class="doc_text"> @@ -1834,9 +1850,9 @@ or do other standard debugging stuff.</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="debugmisc">Miscellaneous Problems</a> -</div> +</h4> <div class="doc_text"> @@ -1867,9 +1883,9 @@ href="mailto:sabre@nondot.org">Chris</a>.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"> +<h2> <a name="future">Future extensions planned</a> -</div> +</h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -1881,9 +1897,9 @@ where we are going:</p> </div> <!-- _______________________________________________________________________ --> -<div class="doc_subsubsection"> +<h4> <a name="SMP">Multithreaded LLVM</a> -</div> +</h4> <div class="doc_text"> diff --git a/docs/index.html b/docs/index.html index f0bd103..e40877c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,7 +7,7 @@ </head> <body> -<div class="doc_title">Documentation for the LLVM System at SVN head</div> +<h1>Documentation for the LLVM System at SVN head</h1> <p class="doc_warning">If you are using a released version of LLVM, see <a href="http://llvm.org/releases/">the download page</a> to find @@ -39,7 +39,7 @@ your documentation.</p> </div> <!--=======================================================================--> -<div class="doc_section"><a name="llvmdesign">LLVM Design & Overview</a></div> +<h2><a name="llvmdesign">LLVM Design & Overview</a></h2> <!--=======================================================================--> <ul> @@ -57,7 +57,7 @@ frequent questions about LLVM's most frequently misunderstood instruction.</li> </ul> <!--=======================================================================--> -<div class="doc_section"><a name="userguide">LLVM User Guides</a></div> +<h2><a name="userguide">LLVM User Guides</a></h2> <!--=======================================================================--> <ul> @@ -131,7 +131,7 @@ href="irc://irc.oftc.net/llvm">join #llvm on irc.oftc.net</a> directly.</li> <!--=======================================================================--> -<div class="doc_section"><a name="llvmprog">General LLVM Programming Documentation</a></div> +<h2><a name="llvmprog">General LLVM Programming Documentation</a></h2> <!--=======================================================================--> <ul> @@ -179,7 +179,7 @@ href="http://llvm.org/doxygen/inherits.html">classes</a>) </ul> <!--=======================================================================--> -<div class="doc_section"><a name="subsystems">LLVM Subsystem Documentation</a></div> +<h2><a name="subsystems">LLVM Subsystem Documentation</a></h2> <!--=======================================================================--> <ul> @@ -246,7 +246,7 @@ JITed code with GDB.</li> <!--=======================================================================--> -<div class="doc_section"><a name="maillist">LLVM Mailing Lists</a></div> +<h2><a name="maillist">LLVM Mailing Lists</a></h2> <!--=======================================================================--> <ul> diff --git a/docs/tutorial/LangImpl1.html b/docs/tutorial/LangImpl1.html index c96cb9f..cc2fa97 100644 --- a/docs/tutorial/LangImpl1.html +++ b/docs/tutorial/LangImpl1.html @@ -11,7 +11,7 @@ <body> -<div class="doc_title">Kaleidoscope: Tutorial Introduction and the Lexer</div> +<h1>Kaleidoscope: Tutorial Introduction and the Lexer</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -30,7 +30,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Tutorial Introduction</a></div> +<h2><a name="intro">Tutorial Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -123,7 +123,7 @@ languages!</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="language">The Basic Language</a></div> +<h2><a name="language">The Basic Language</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -181,7 +181,7 @@ a Mandelbrot Set</a> at various levels of magnification.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="lexer">The Lexer</a></div> +<h2><a name="lexer">The Lexer</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/LangImpl2.html b/docs/tutorial/LangImpl2.html index ac4f1ee..bfe8d3f 100644 --- a/docs/tutorial/LangImpl2.html +++ b/docs/tutorial/LangImpl2.html @@ -11,7 +11,7 @@ <body> -<div class="doc_title">Kaleidoscope: Implementing a Parser and AST</div> +<h1>Kaleidoscope: Implementing a Parser and AST</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -36,7 +36,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 2 Introduction</a></div> +<h2><a name="intro">Chapter 2 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -61,7 +61,7 @@ Tree.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="ast">The Abstract Syntax Tree (AST)</a></div> +<h2><a name="ast">The Abstract Syntax Tree (AST)</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -178,7 +178,7 @@ bodies in Kaleidoscope.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="parserbasics">Parser Basics</a></div> +<h2><a name="parserbasics">Parser Basics</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -239,8 +239,7 @@ piece of our grammar: numeric literals.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="parserprimexprs">Basic Expression - Parsing</a></div> +<h2><a name="parserprimexprs">Basic Expression Parsing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -394,8 +393,7 @@ They are a bit more complex.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="parserbinops">Binary Expression - Parsing</a></div> +<h2><a name="parserbinops">Binary Expression Parsing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -617,7 +615,7 @@ handle function definitions, etc.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="parsertop">Parsing the Rest</a></div> +<h2><a name="parsertop">Parsing the Rest</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -714,7 +712,7 @@ actually <em>execute</em> this code we've built!</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="driver">The Driver</a></div> +<h2><a name="driver">The Driver</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -753,7 +751,7 @@ type "4+5;", and the parser will know you are done.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="conclusions">Conclusions</a></div> +<h2><a name="conclusions">Conclusions</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -790,7 +788,7 @@ Representation (IR) from the AST.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/LangImpl3.html b/docs/tutorial/LangImpl3.html index 42e5169..468a1bf 100644 --- a/docs/tutorial/LangImpl3.html +++ b/docs/tutorial/LangImpl3.html @@ -11,7 +11,7 @@ <body> -<div class="doc_title">Kaleidoscope: Code generation to LLVM IR</div> +<h1>Kaleidoscope: Code generation to LLVM IR</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -34,7 +34,7 @@ Support</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 3 Introduction</a></div> +<h2><a name="intro">Chapter 3 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -57,7 +57,7 @@ releases page</a>.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="basics">Code Generation Setup</a></div> +<h2><a name="basics">Code Generation Setup</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -147,7 +147,7 @@ has already been done, and we'll just use it to emit code. </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="exprs">Expression Code Generation</a></div> +<h2><a name="exprs">Expression Code Generation</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -293,7 +293,7 @@ basic framework.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="funcs">Function Code Generation</a></div> +<h2><a name="funcs">Function Code Generation</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -515,8 +515,7 @@ def bar() foo(1, 2); # error, unknown function "foo" </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="driver">Driver Changes and -Closing Thoughts</a></div> +<h2><a name="driver">Driver Changes and Closing Thoughts</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -657,7 +656,7 @@ support</a> to this so we can actually start running code!</p> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/LangImpl4.html b/docs/tutorial/LangImpl4.html index 2d87622..d73f8a3 100644 --- a/docs/tutorial/LangImpl4.html +++ b/docs/tutorial/LangImpl4.html @@ -11,7 +11,7 @@ <body> -<div class="doc_title">Kaleidoscope: Adding JIT and Optimizer Support</div> +<h1>Kaleidoscope: Adding JIT and Optimizer Support</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -33,7 +33,7 @@ Flow</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 4 Introduction</a></div> +<h2><a name="intro">Chapter 4 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -48,8 +48,7 @@ for the Kaleidoscope language.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="trivialconstfold">Trivial Constant -Folding</a></div> +<h2><a name="trivialconstfold">Trivial Constant Folding</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -134,8 +133,7 @@ range of optimizations that you can use, in the form of "passes".</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="optimizerpasses">LLVM Optimization - Passes</a></div> +<h2><a name="optimizerpasses">LLVM Optimization Passes</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -266,7 +264,7 @@ executing it!</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="jit">Adding a JIT Compiler</a></div> +<h2><a name="jit">Adding a JIT Compiler</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -474,7 +472,7 @@ tackling some interesting LLVM IR issues along the way.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/LangImpl5.html b/docs/tutorial/LangImpl5.html index 2c1a07f..4fbf7be 100644 --- a/docs/tutorial/LangImpl5.html +++ b/docs/tutorial/LangImpl5.html @@ -11,7 +11,7 @@ <body> -<div class="doc_title">Kaleidoscope: Extending the Language: Control Flow</div> +<h1>Kaleidoscope: Extending the Language: Control Flow</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -48,7 +48,7 @@ User-defined Operators</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 5 Introduction</a></div> +<h2><a name="intro">Chapter 5 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -65,7 +65,7 @@ have an if/then/else expression plus a simple 'for' loop.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="ifthen">If/Then/Else</a></div> +<h2><a name="ifthen">If/Then/Else</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -111,8 +111,7 @@ pieces.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="iflexer">Lexer Extensions for -If/Then/Else</a></div> +<h4><a name="iflexer">Lexer Extensions for If/Then/Else</a></h4> <!-- ======================================================================= --> @@ -146,8 +145,7 @@ stuff:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="ifast">AST Extensions for - If/Then/Else</a></div> +<h4><a name="ifast">AST Extensions for If/Then/Else</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -172,8 +170,7 @@ public: </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="ifparser">Parser Extensions for -If/Then/Else</a></div> +<h4><a name="ifparser">Parser Extensions for If/Then/Else</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -231,7 +228,7 @@ static ExprAST *ParsePrimary() { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="ifir">LLVM IR for If/Then/Else</a></div> +<h4><a name="ifir">LLVM IR for If/Then/Else</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -347,8 +344,7 @@ directly.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="ifcodegen">Code Generation for -If/Then/Else</a></div> +<h4><a name="ifcodegen">Code Generation for If/Then/Else</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -501,7 +497,7 @@ another useful expression that is familiar from non-functional languages...</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="for">'for' Loop Expression</a></div> +<h2><a name="for">'for' Loop Expression</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -536,8 +532,7 @@ support this.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forlexer">Lexer Extensions for -the 'for' Loop</a></div> +<h4><a name="forlexer">Lexer Extensions for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -566,8 +561,7 @@ the 'for' Loop</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forast">AST Extensions for -the 'for' Loop</a></div> +<h4><a name="forast">AST Extensions for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -593,8 +587,7 @@ public: </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forparser">Parser Extensions for -the 'for' Loop</a></div> +<h4><a name="forparser">Parser Extensions for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -653,8 +646,7 @@ static ExprAST *ParseForExpr() { </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forir">LLVM IR for -the 'for' Loop</a></div> +<h4><a name="forir">LLVM IR for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -699,8 +691,7 @@ expressions, and some basic blocks. Lets see how this fits together.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forcodegen">Code Generation for -the 'for' Loop</a></div> +<h4><a name="forcodegen">Code Generation for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -877,7 +868,7 @@ language.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/LangImpl6.html b/docs/tutorial/LangImpl6.html index 72fa9c3..510d9dd 100644 --- a/docs/tutorial/LangImpl6.html +++ b/docs/tutorial/LangImpl6.html @@ -11,7 +11,7 @@ <body> -<div class="doc_title">Kaleidoscope: Extending the Language: User-defined Operators</div> +<h1>Kaleidoscope: Extending the Language: User-defined Operators</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -34,7 +34,7 @@ Variables / SSA Construction</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 6 Introduction</a></div> +<h2><a name="intro">Chapter 6 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -60,7 +60,7 @@ an example of what you can build with Kaleidoscope and its feature set.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="idea">User-defined Operators: the Idea</a></div> +<h2><a name="idea">User-defined Operators: the Idea</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -125,7 +125,7 @@ operators.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="binary">User-defined Binary Operators</a></div> +<h2><a name="binary">User-defined Binary Operators</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -342,7 +342,7 @@ see what it takes.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="unary">User-defined Unary Operators</a></div> +<h2><a name="unary">User-defined Unary Operators</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -491,7 +491,7 @@ is simpler primarily because it doesn't need to handle any predefined operators. </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="example">Kicking the Tires</a></div> +<h2><a name="example">Kicking the Tires</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -796,7 +796,7 @@ add variable mutation without building SSA in your front-end.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/LangImpl7.html b/docs/tutorial/LangImpl7.html index 732d908..fc49d07 100644 --- a/docs/tutorial/LangImpl7.html +++ b/docs/tutorial/LangImpl7.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title">Kaleidoscope: Extending the Language: Mutable Variables</div> +<h1>Kaleidoscope: Extending the Language: Mutable Variables</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -38,7 +38,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 7 Introduction</a></div> +<h2><a name="intro">Chapter 7 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -66,7 +66,7 @@ support for this, though the way it works is a bit unexpected for some.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="why">Why is this a hard problem?</a></div> +<h2><a name="why">Why is this a hard problem?</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -140,7 +140,7 @@ logic.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="memory">Memory in LLVM</a></div> +<h2><a name="memory">Memory in LLVM</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -321,8 +321,7 @@ variables now! </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="kalvars">Mutable Variables in -Kaleidoscope</a></div> +<h2><a name="kalvars">Mutable Variables in Kaleidoscope</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -378,8 +377,7 @@ Kaleidoscope to support new variable definitions. </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="adjustments">Adjusting Existing Variables for -Mutation</a></div> +<h2><a name="adjustments">Adjusting Existing Variables for Mutation</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -648,7 +646,7 @@ we'll add the assignment operator.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="assignment">New Assignment Operator</a></div> +<h2><a name="assignment">New Assignment Operator</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -745,8 +743,7 @@ add this next! </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="localvars">User-defined Local -Variables</a></div> +<h2><a name="localvars">User-defined Local Variables</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -979,7 +976,7 @@ anywhere in sight.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/LangImpl8.html b/docs/tutorial/LangImpl8.html index 5f993ec..449ac70 100644 --- a/docs/tutorial/LangImpl8.html +++ b/docs/tutorial/LangImpl8.html @@ -11,8 +11,7 @@ <body> -<div class="doc_title">Kaleidoscope: Conclusion and other useful LLVM - tidbits</div> +<h1>Kaleidoscope: Conclusion and other useful LLVM tidbits</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -43,7 +42,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="conclusion">Tutorial Conclusion</a></div> +<h2><a name="conclusion">Tutorial Conclusion</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -154,8 +153,7 @@ are very useful if you want to take advantage of LLVM's capabilities.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="llvmirproperties">Properties of the LLVM -IR</a></div> +<h2><a name="llvmirproperties">Properties of the LLVM IR</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -166,8 +164,7 @@ get these out of the way right now, shall we?</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="targetindep">Target -Independence</a></div> +<h4><a name="targetindep">Target Independence</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -221,7 +218,7 @@ in-kernel language.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="safety">Safety Guarantees</a></div> +<h4><a name="safety">Safety Guarantees</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -243,8 +240,7 @@ list</a> if you are interested in more details.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="langspecific">Language-Specific -Optimizations</a></div> +<h4><a name="langspecific">Language-Specific Optimizations</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -298,7 +294,7 @@ language-specific AST. </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="tipsandtricks">Tips and Tricks</a></div> +<h2><a name="tipsandtricks">Tips and Tricks</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -310,8 +306,7 @@ everyone rediscover them, this section talks about some of these issues.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="offsetofsizeof">Implementing portable -offsetof/sizeof</a></div> +<h4><a name="offsetofsizeof">Implementing portable offsetof/sizeof</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -331,8 +326,7 @@ in a portable way.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="gcstack">Garbage Collected -Stack Frames</a></div> +<h4><a name="gcstack">Garbage Collected Stack Frames</a></h4> <!-- ======================================================================= --> <div class="doc_text"> diff --git a/docs/tutorial/OCamlLangImpl1.html b/docs/tutorial/OCamlLangImpl1.html index 3ec7c1e..5446b7a 100644 --- a/docs/tutorial/OCamlLangImpl1.html +++ b/docs/tutorial/OCamlLangImpl1.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title">Kaleidoscope: Tutorial Introduction and the Lexer</div> +<h1>Kaleidoscope: Tutorial Introduction and the Lexer</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -35,7 +35,7 @@ AST</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Tutorial Introduction</a></div> +<h2><a name="intro">Tutorial Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -130,7 +130,7 @@ languages!</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="language">The Basic Language</a></div> +<h2><a name="language">The Basic Language</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -188,7 +188,7 @@ a Mandelbrot Set</a> at various levels of magnification.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="lexer">The Lexer</a></div> +<h2><a name="lexer">The Lexer</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/OCamlLangImpl2.html b/docs/tutorial/OCamlLangImpl2.html index 9b00232..deb592e 100644 --- a/docs/tutorial/OCamlLangImpl2.html +++ b/docs/tutorial/OCamlLangImpl2.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title">Kaleidoscope: Implementing a Parser and AST</div> +<h1>Kaleidoscope: Implementing a Parser and AST</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -40,7 +40,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 2 Introduction</a></div> +<h2><a name="intro">Chapter 2 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -65,7 +65,7 @@ Tree.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="ast">The Abstract Syntax Tree (AST)</a></div> +<h2><a name="ast">The Abstract Syntax Tree (AST)</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -146,7 +146,7 @@ bodies in Kaleidoscope.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="parserbasics">Parser Basics</a></div> +<h2><a name="parserbasics">Parser Basics</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -181,8 +181,7 @@ piece of our grammar: numeric literals.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="parserprimexprs">Basic Expression - Parsing</a></div> +<h2><a name="parserprimexprs">Basic Expression Parsing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -303,8 +302,7 @@ They are a bit more complex.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="parserbinops">Binary Expression - Parsing</a></div> +<h2><a name="parserbinops">Binary Expression Parsing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -517,7 +515,7 @@ handle function definitions, etc.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="parsertop">Parsing the Rest</a></div> +<h2><a name="parsertop">Parsing the Rest</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -596,7 +594,7 @@ actually <em>execute</em> this code we've built!</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="driver">The Driver</a></div> +<h2><a name="driver">The Driver</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -652,7 +650,7 @@ type "4+5;", and the parser will know you are done.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="conclusions">Conclusions</a></div> +<h2><a name="conclusions">Conclusions</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -689,7 +687,7 @@ Representation (IR) from the AST.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/OCamlLangImpl3.html b/docs/tutorial/OCamlLangImpl3.html index e7c419e..cf5afe9 100644 --- a/docs/tutorial/OCamlLangImpl3.html +++ b/docs/tutorial/OCamlLangImpl3.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title">Kaleidoscope: Code generation to LLVM IR</div> +<h1>Kaleidoscope: Code generation to LLVM IR</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -38,7 +38,7 @@ Support</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 3 Introduction</a></div> +<h2><a name="intro">Chapter 3 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -57,7 +57,7 @@ LLVM SVN to work. LLVM 2.2 and before will not work with it.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="basics">Code Generation Setup</a></div> +<h2><a name="basics">Code Generation Setup</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -128,7 +128,7 @@ that this has already been done, and we'll just use it to emit code.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="exprs">Expression Code Generation</a></div> +<h2><a name="exprs">Expression Code Generation</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -263,7 +263,7 @@ basic framework.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="funcs">Function Code Generation</a></div> +<h2><a name="funcs">Function Code Generation</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -466,8 +466,7 @@ def bar() foo(1, 2); # error, unknown function "foo" </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="driver">Driver Changes and -Closing Thoughts</a></div> +<h2><a name="driver">Driver Changes and Closing Thoughts</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -607,7 +606,7 @@ support</a> to this so we can actually start running code!</p> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/OCamlLangImpl4.html b/docs/tutorial/OCamlLangImpl4.html index 2219f3a..e424045 100644 --- a/docs/tutorial/OCamlLangImpl4.html +++ b/docs/tutorial/OCamlLangImpl4.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title">Kaleidoscope: Adding JIT and Optimizer Support</div> +<h1>Kaleidoscope: Adding JIT and Optimizer Support</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -37,7 +37,7 @@ Flow</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 4 Introduction</a></div> +<h2><a name="intro">Chapter 4 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -52,8 +52,7 @@ for the Kaleidoscope language.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="trivialconstfold">Trivial Constant -Folding</a></div> +<h2><a name="trivialconstfold">Trivial Constant Folding</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -148,8 +147,7 @@ range of optimizations that you can use, in the form of "passes".</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="optimizerpasses">LLVM Optimization - Passes</a></div> +<h2><a name="optimizerpasses">LLVM Optimization Passes</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -283,7 +281,7 @@ executing it!</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="jit">Adding a JIT Compiler</a></div> +<h2><a name="jit">Adding a JIT Compiler</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -486,7 +484,7 @@ constructs</a>, tackling some interesting LLVM IR issues along the way.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/OCamlLangImpl5.html b/docs/tutorial/OCamlLangImpl5.html index 74f28e7..59c1749 100644 --- a/docs/tutorial/OCamlLangImpl5.html +++ b/docs/tutorial/OCamlLangImpl5.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title">Kaleidoscope: Extending the Language: Control Flow</div> +<h1>Kaleidoscope: Extending the Language: Control Flow</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -52,7 +52,7 @@ User-defined Operators</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 5 Introduction</a></div> +<h2><a name="intro">Chapter 5 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -69,7 +69,7 @@ have an if/then/else expression plus a simple 'for' loop.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="ifthen">If/Then/Else</a></div> +<h2><a name="ifthen">If/Then/Else</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -115,8 +115,7 @@ pieces.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="iflexer">Lexer Extensions for -If/Then/Else</a></div> +<h4><a name="iflexer">Lexer Extensions for If/Then/Else</a></h4> <!-- ======================================================================= --> @@ -153,8 +152,7 @@ stuff:</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="ifast">AST Extensions for - If/Then/Else</a></div> +<h4><a name="ifast">AST Extensions for If/Then/Else</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -175,8 +173,7 @@ type expr = </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="ifparser">Parser Extensions for -If/Then/Else</a></div> +<h4><a name="ifparser">Parser Extensions for If/Then/Else</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -214,7 +211,7 @@ let rec parse_primary = parser </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="ifir">LLVM IR for If/Then/Else</a></div> +<h4><a name="ifir">LLVM IR for If/Then/Else</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -331,8 +328,7 @@ directly.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="ifcodegen">Code Generation for -If/Then/Else</a></div> +<h4><a name="ifcodegen">Code Generation for If/Then/Else</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -493,7 +489,7 @@ another useful expression that is familiar from non-functional languages...</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="for">'for' Loop Expression</a></div> +<h2><a name="for">'for' Loop Expression</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -528,8 +524,7 @@ support this.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forlexer">Lexer Extensions for -the 'for' Loop</a></div> +<h4><a name="forlexer">Lexer Extensions for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -559,8 +554,7 @@ the 'for' Loop</a></div> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forast">AST Extensions for -the 'for' Loop</a></div> +<h4><a name="forast">AST Extensions for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -580,8 +574,7 @@ type expr = </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forparser">Parser Extensions for -the 'for' Loop</a></div> +<h4><a name="forparser">Parser Extensions for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -628,8 +621,7 @@ let rec parse_primary = parser </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forir">LLVM IR for -the 'for' Loop</a></div> +<h4><a name="forir">LLVM IR for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -674,8 +666,7 @@ expressions, and some basic blocks. Lets see how this fits together.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="forcodegen">Code Generation for -the 'for' Loop</a></div> +<h4><a name="forcodegen">Code Generation for the 'for' Loop</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -852,7 +843,7 @@ to our poor innocent language.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/OCamlLangImpl6.html b/docs/tutorial/OCamlLangImpl6.html index c5772a2..693aafc 100644 --- a/docs/tutorial/OCamlLangImpl6.html +++ b/docs/tutorial/OCamlLangImpl6.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title">Kaleidoscope: Extending the Language: User-defined Operators</div> +<h1>Kaleidoscope: Extending the Language: User-defined Operators</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -38,7 +38,7 @@ Variables / SSA Construction</li> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 6 Introduction</a></div> +<h2><a name="intro">Chapter 6 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -64,7 +64,7 @@ an example of what you can build with Kaleidoscope and its feature set.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="idea">User-defined Operators: the Idea</a></div> +<h2><a name="idea">User-defined Operators: the Idea</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -129,7 +129,7 @@ operators.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="binary">User-defined Binary Operators</a></div> +<h2><a name="binary">User-defined Binary Operators</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -320,7 +320,7 @@ see what it takes.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="unary">User-defined Unary Operators</a></div> +<h2><a name="unary">User-defined Unary Operators</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -472,7 +472,7 @@ is simpler primarily because it doesn't need to handle any predefined operators. </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="example">Kicking the Tires</a></div> +<h2><a name="example">Kicking the Tires</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -778,7 +778,7 @@ add variable mutation without building SSA in your front-end.</p> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/OCamlLangImpl7.html b/docs/tutorial/OCamlLangImpl7.html index 42d8141..aebc81c 100644 --- a/docs/tutorial/OCamlLangImpl7.html +++ b/docs/tutorial/OCamlLangImpl7.html @@ -13,7 +13,7 @@ <body> -<div class="doc_title">Kaleidoscope: Extending the Language: Mutable Variables</div> +<h1>Kaleidoscope: Extending the Language: Mutable Variables</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -42,7 +42,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="intro">Chapter 7 Introduction</a></div> +<h2><a name="intro">Chapter 7 Introduction</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -70,7 +70,7 @@ support for this, though the way it works is a bit unexpected for some.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="why">Why is this a hard problem?</a></div> +<h2><a name="why">Why is this a hard problem?</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -144,7 +144,7 @@ logic.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="memory">Memory in LLVM</a></div> +<h2><a name="memory">Memory in LLVM</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -325,8 +325,7 @@ variables now! </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="kalvars">Mutable Variables in -Kaleidoscope</a></div> +<h2><a name="kalvars">Mutable Variables in Kaleidoscope</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -382,8 +381,7 @@ Kaleidoscope to support new variable definitions. </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="adjustments">Adjusting Existing Variables for -Mutation</a></div> +<h2><a name="adjustments">Adjusting Existing Variables for Mutation</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -672,7 +670,7 @@ we'll add the assignment operator.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="assignment">New Assignment Operator</a></div> +<h2><a name="assignment">New Assignment Operator</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -773,8 +771,7 @@ add this next! </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="localvars">User-defined Local -Variables</a></div> +<h2><a name="localvars">User-defined Local Variables</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -956,7 +953,7 @@ anywhere in sight.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="code">Full Code Listing</a></div> +<h2><a name="code">Full Code Listing</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> diff --git a/docs/tutorial/OCamlLangImpl8.html b/docs/tutorial/OCamlLangImpl8.html index 5f993ec..449ac70 100644 --- a/docs/tutorial/OCamlLangImpl8.html +++ b/docs/tutorial/OCamlLangImpl8.html @@ -11,8 +11,7 @@ <body> -<div class="doc_title">Kaleidoscope: Conclusion and other useful LLVM - tidbits</div> +<h1>Kaleidoscope: Conclusion and other useful LLVM tidbits</h1> <ul> <li><a href="index.html">Up to Tutorial Index</a></li> @@ -43,7 +42,7 @@ </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="conclusion">Tutorial Conclusion</a></div> +<h2><a name="conclusion">Tutorial Conclusion</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -154,8 +153,7 @@ are very useful if you want to take advantage of LLVM's capabilities.</p> </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="llvmirproperties">Properties of the LLVM -IR</a></div> +<h2><a name="llvmirproperties">Properties of the LLVM IR</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -166,8 +164,7 @@ get these out of the way right now, shall we?</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="targetindep">Target -Independence</a></div> +<h4><a name="targetindep">Target Independence</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -221,7 +218,7 @@ in-kernel language.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="safety">Safety Guarantees</a></div> +<h4><a name="safety">Safety Guarantees</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -243,8 +240,7 @@ list</a> if you are interested in more details.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="langspecific">Language-Specific -Optimizations</a></div> +<h4><a name="langspecific">Language-Specific Optimizations</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -298,7 +294,7 @@ language-specific AST. </div> <!-- *********************************************************************** --> -<div class="doc_section"><a name="tipsandtricks">Tips and Tricks</a></div> +<h2><a name="tipsandtricks">Tips and Tricks</a></h2> <!-- *********************************************************************** --> <div class="doc_text"> @@ -310,8 +306,7 @@ everyone rediscover them, this section talks about some of these issues.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="offsetofsizeof">Implementing portable -offsetof/sizeof</a></div> +<h4><a name="offsetofsizeof">Implementing portable offsetof/sizeof</a></h4> <!-- ======================================================================= --> <div class="doc_text"> @@ -331,8 +326,7 @@ in a portable way.</p> </div> <!-- ======================================================================= --> -<div class="doc_subsubsection"><a name="gcstack">Garbage Collected -Stack Frames</a></div> +<h4><a name="gcstack">Garbage Collected Stack Frames</a></h4> <!-- ======================================================================= --> <div class="doc_text"> diff --git a/docs/tutorial/index.html b/docs/tutorial/index.html index 11dd5e2..0a8cae2 100644 --- a/docs/tutorial/index.html +++ b/docs/tutorial/index.html @@ -12,7 +12,7 @@ <body> -<div class="doc_title"> LLVM Tutorial: Table of Contents </div> +<h1>LLVM Tutorial: Table of Contents</h1> <ol> <li>Kaleidoscope: Implementing a Language with LLVM |