From: NAKAMURA Takumi Date: Mon, 18 Apr 2011 23:59:50 +0000 (+0000) Subject: docs: Use as Heading elements instead of
. X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=05d0265fef651de152c8127aa701e689555649f3;p=oota-llvm.git docs: Use as Heading elements instead of
. 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 --- diff --git a/docs/AliasAnalysis.html b/docs/AliasAnalysis.html index c1603be1299..bed3aceeb5c 100644 --- a/docs/AliasAnalysis.html +++ b/docs/AliasAnalysis.html @@ -7,9 +7,9 @@ -
+

LLVM Alias Analysis Infrastructure -

+
  1. Introduction
  2. @@ -59,9 +59,9 @@
- +
@@ -96,9 +96,9 @@ know.

- +
@@ -125,9 +125,9 @@ same function.

- +
@@ -181,9 +181,9 @@ that the accesses alias.

- +

The alias method is the primary interface used to determine whether @@ -197,9 +197,9 @@ least one of the values is a constant.

- +

The NoAlias response may be used when there is never an immediate dependence @@ -228,9 +228,9 @@ implies that the pointers compare equal.

- +
@@ -250,9 +250,9 @@ memory written to by CS2. Note that this relation is not commutative.

- +
@@ -264,9 +264,9 @@ analysis implementations and can be put to good use by various clients.
-
+

The pointsToConstantMemory method -

+
@@ -279,10 +279,10 @@ memory location to be modified.

- +
@@ -308,9 +308,9 @@ functions that satisfy the doesNotAccessMemory method also satisfies
- +
@@ -324,9 +324,9 @@ implementations included with LLVM.

- +
@@ -352,9 +352,9 @@ solve:

- +
@@ -393,9 +393,9 @@ bool run(Module &M) {
- +
@@ -412,9 +412,9 @@ implementing, you just override the interfaces you can improve.

- +
@@ -451,9 +451,9 @@ updated.

- +

@@ -474,7 +474,7 @@ sure to call these interfaces appropriately.

-
The deleteValue method
+

The deleteValue method

The deleteValue method is called by transformations when they remove an @@ -485,7 +485,7 @@ any entries for the specified value, if they exist.
-
The copyValue method
+

The copyValue method

The copyValue 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.
-
The replaceWithNewValue method
+

The replaceWithNewValue method

This method is a simple helper method that is provided to make clients easier to @@ -506,7 +506,7 @@ analysis implementations.
-
The addEscapingUse method
+

The addEscapingUse method

The addEscapingUse method is used when the uses of a pointer @@ -528,9 +528,9 @@ uses below:

- +
@@ -544,9 +544,9 @@ method as possible (within reason).

- +
@@ -617,9 +617,9 @@ from itself.

- +
@@ -630,9 +630,9 @@ preference, these are...

- +
@@ -645,9 +645,9 @@ efficient, and is used by Dead Store Elimination, GVN, and memcpy optimizations.
- +
@@ -681,9 +681,9 @@ pointer argument is loop-invariant.

-
+

The AliasSetTracker implementation -

+
@@ -707,9 +707,9 @@ are.

- +
@@ -722,9 +722,9 @@ best precision and efficiency.

- +
@@ -738,9 +738,9 @@ for monitoring and evaluating different implementations.

- +
@@ -752,9 +752,9 @@ href="#chaining">chain to other alias analysis implementations.

- +
@@ -766,9 +766,9 @@ problem.

- +
@@ -794,9 +794,9 @@ many important facts:

- +
@@ -818,9 +818,9 @@ non-address taken globals), but is very quick analysis.

- +
@@ -841,9 +841,9 @@ module, it is not part of the LLVM core.

- +
@@ -864,9 +864,9 @@ module, it is not part of the LLVM core.

- +
@@ -878,9 +878,9 @@ and loop induction variables than other alias analyses have.

- +
LLVM includes several alias-analysis driven transformations which can be used @@ -888,9 +888,9 @@ with any of the implementations above.
- +
@@ -902,9 +902,9 @@ not have side-effects and are not used.

- +
@@ -927,9 +927,9 @@ no may aliases to the loaded/stored memory location.
- +

@@ -942,10 +942,10 @@ pointer.

- +
@@ -955,10 +955,10 @@ pointer.

- +
@@ -969,9 +969,9 @@ implementations. You can use them with commands like 'opt -ds-aa
- +
@@ -990,9 +990,9 @@ the AliasSetTracker class. To use it, use something like:

- +
@@ -1014,9 +1014,9 @@ when debugging a transformation or an alias analysis implementation.

- +
@@ -1029,9 +1029,9 @@ algorithm will have a lower number of may aliases).

- +
diff --git a/docs/BitCodeFormat.html b/docs/BitCodeFormat.html index 36d31c9cefb..396904a3d6d 100644 --- a/docs/BitCodeFormat.html +++ b/docs/BitCodeFormat.html @@ -7,7 +7,7 @@ -
LLVM Bitcode File Format
+

LLVM Bitcode File Format

  1. Abstract
  2. Overview
  3. @@ -47,7 +47,7 @@
- +

Abstract

@@ -58,7 +58,7 @@ the LLVM IR into it.

- +

Overview

@@ -88,7 +88,7 @@ wrapper format, then describes the record structure used by LLVM IR files.
- +

Bitstream Format

@@ -117,8 +117,9 @@ understanding the encoding.

- +

+ Magic Numbers +

@@ -130,8 +131,9 @@ bitcode, while application-specific programs will want to look at all four.

- +

+ Primitives +

@@ -147,8 +149,9 @@ Integers.
- +

+ Fixed Width Integers +

@@ -161,8 +164,9 @@ Integers.
- +

+ Variable Width Integers +

@@ -182,7 +186,7 @@ value of 24 (011 << 3) with no continuation. The sum (3+24) yields the value
- +

6-bit characters

@@ -206,7 +210,7 @@ characters not in the set.

- +

Word Alignment

@@ -218,8 +222,9 @@ represented as a multiple of 32-bit words.

- +

+ Abbreviation IDs +

@@ -253,8 +258,9 @@ an abbreviated record encoding.

- +

+ Blocks +

@@ -300,8 +306,7 @@ popped, the saved values are restored.
- +

ENTER_SUBBLOCK Encoding

@@ -322,8 +327,7 @@ reader to skip over the entire block in one jump.
- +

END_BLOCK Encoding

@@ -340,8 +344,9 @@ an even multiple of 32-bits. - +

+ Data Records +

@@ -358,8 +363,7 @@ ASCII codes for the characters in the string.

- +

UNABBREV_RECORD Encoding

@@ -385,8 +389,7 @@ bits. This is not an efficient encoding, but it is fully general.
- +

Abbreviated Record Encoding

@@ -410,8 +413,9 @@ operand value).

- +

+ Abbreviations +

@@ -434,8 +438,7 @@ operators, the abbreviation does not need to be emitted.

- +

DEFINE_ABBREV Encoding

@@ -553,8 +556,9 @@ used for any other string value.
- +

+ Standard Blocks +

@@ -568,8 +572,7 @@ may be added. Block IDs 0-7 are reserved for standard blocks.
- +

#0 - BLOCKINFO Block

@@ -621,7 +624,7 @@ from the corresponding blocks. It is not safe to skip them.
- +

Bitcode Wrapper Format

@@ -652,7 +655,7 @@ value that can be used to encode the CPU of the target.
- +

LLVM IR Encoding

@@ -669,11 +672,12 @@ reader is not allowed to build in any knowledge of this.
- +

+ Basics +

- +

LLVM IR Magic Number

@@ -695,7 +699,7 @@ When combined with the bitcode magic number and viewed as bytes, this is
- +

Signed VBRs

@@ -728,7 +732,7 @@ within CONSTANTS_BLOCK blocks. - +

LLVM IR Blocks

@@ -759,8 +763,9 @@ LLVM IR is defined with the following blocks:
- +

+ MODULE_BLOCK Contents +

@@ -785,8 +790,7 @@ following sub-blocks:
- +

MODULE_CODE_VERSION Record

@@ -798,8 +802,7 @@ time.

- +

MODULE_CODE_TRIPLE Record

[TRIPLE, ...string...]

@@ -810,8 +813,7 @@ specification string.

- +

MODULE_CODE_DATALAYOUT Record

[DATALAYOUT, ...string...]

@@ -822,8 +824,7 @@ specification string.

- +

MODULE_CODE_ASM Record

[ASM, ...string...]

@@ -834,8 +835,7 @@ individual assembly blocks separated by newline (ASCII 10) characters.

- +

MODULE_CODE_SECTIONNAME Record

[SECTIONNAME, ...string...]

@@ -850,8 +850,7 @@ referenced by the 1-based index in the section fields of
- +

MODULE_CODE_DEPLIB Record

[DEPLIB, ...string...]

@@ -864,8 +863,7 @@ library name referenced.

- +

MODULE_CODE_GLOBALVAR Record

[GLOBALVAR, pointer type, isconst, initid, linkage, alignment, section, visibility, threadlocal]

@@ -929,8 +927,7 @@ has unnamed_addr
- +

MODULE_CODE_FUNCTION Record

@@ -986,8 +983,7 @@ has unnamed_addr
- +

MODULE_CODE_ALIAS Record

@@ -1011,8 +1007,7 @@ for this alias
- +

MODULE_CODE_PURGEVALS Record

[PURGEVALS, numvals]

@@ -1025,8 +1020,7 @@ new value indices will start from the given numvals value.

- +

MODULE_CODE_GCNAME Record

[GCNAME, ...string...]

@@ -1040,8 +1034,9 @@ fields of FUNCTION records.

- +

+ PARAMATTR_BLOCK Contents +

@@ -1061,8 +1056,7 @@ attribute lists).

- +

PARAMATTR_CODE_ENTRY Record

@@ -1106,8 +1100,9 @@ the logarithm base 2 of the requested alignment, plus 1
- +

+ TYPE_BLOCK Contents +

@@ -1127,8 +1122,7 @@ equivalent types).

- +

TYPE_CODE_NUMENTRY Record

@@ -1142,8 +1136,7 @@ in the block.
- +

TYPE_CODE_VOID Record

@@ -1155,8 +1148,7 @@ type table.
- +

TYPE_CODE_FLOAT Record

@@ -1168,8 +1160,7 @@ floating point) type to the type table.
- +

TYPE_CODE_DOUBLE Record

@@ -1181,8 +1172,7 @@ floating point) type to the type table.
- +

TYPE_CODE_LABEL Record

@@ -1194,8 +1184,7 @@ the type table.
- +

TYPE_CODE_OPAQUE Record

@@ -1208,8 +1197,7 @@ unified.
- +

TYPE_CODE_INTEGER Record

@@ -1222,8 +1210,7 @@ integer type.
- +

TYPE_CODE_POINTER Record

@@ -1243,8 +1230,7 @@ default address space is zero.
- +

TYPE_CODE_FUNCTION Record

@@ -1268,8 +1254,7 @@ parameter types of the function
- +

TYPE_CODE_STRUCT Record

@@ -1287,8 +1272,7 @@ types of the structure
- +

TYPE_CODE_ARRAY Record

@@ -1305,8 +1289,7 @@ table. The operand fields are

- +

TYPE_CODE_VECTOR Record

@@ -1323,8 +1306,7 @@ table. The operand fields are

- +

TYPE_CODE_X86_FP80 Record

@@ -1336,8 +1318,7 @@ floating point) type to the type table.
- +

TYPE_CODE_FP128 Record

@@ -1349,8 +1330,7 @@ floating point) type to the type table.
- +

TYPE_CODE_PPC_FP128 Record

@@ -1362,8 +1342,7 @@ floating point) type to the type table.
- +

TYPE_CODE_METADATA Record

@@ -1375,8 +1354,9 @@ type to the type table.
- +

+ CONSTANTS_BLOCK Contents +

@@ -1387,8 +1367,9 @@ type to the type table. - +

+ FUNCTION_BLOCK Contents +

@@ -1409,8 +1390,9 @@ type to the type table. - +

+ TYPE_SYMTAB_BLOCK Contents +

@@ -1422,8 +1404,7 @@ indices.
- +

TST_CODE_ENTRY Record

@@ -1438,8 +1419,9 @@ name. Each entry corresponds to a single named type. - +

+ VALUE_SYMTAB_BLOCK Contents +

@@ -1450,8 +1432,9 @@ name. Each entry corresponds to a single named type. - +

+ METADATA_BLOCK Contents +

@@ -1462,8 +1445,9 @@ name. Each entry corresponds to a single named type. - +

+ METADATA_ATTACHMENT Contents +

diff --git a/docs/Bugpoint.html b/docs/Bugpoint.html index 6bbc9b70676..5568fc7baf9 100644 --- a/docs/Bugpoint.html +++ b/docs/Bugpoint.html @@ -6,9 +6,9 @@ -
+

LLVM bugpoint tool: design and usage -

+
- +
@@ -50,9 +50,9 @@ href="HowToSubmitABug.html">How To Submit a Bug Report document.

- +
@@ -71,9 +71,9 @@ executing it) takes a long time.

- +
@@ -104,9 +104,9 @@ Otherwise, there is no problem bugpoint can debug.

- +
@@ -129,9 +129,9 @@ reproduce the failure with opt or llc.

- +
@@ -150,9 +150,9 @@ good code.

- +
@@ -167,9 +167,9 @@ assumes that the selected code generator is working properly.

- +
diff --git a/docs/CMake.html b/docs/CMake.html index 73e6f440e30..8ea4377dd51 100644 --- a/docs/CMake.html +++ b/docs/CMake.html @@ -6,9 +6,9 @@ -
+

Building LLVM with CMake -

+
- +
@@ -59,9 +59,9 @@
- +
@@ -112,9 +112,9 @@
- +
@@ -160,9 +160,9 @@
- +
@@ -197,9 +197,9 @@
- +
@@ -240,9 +240,9 @@
- +
@@ -358,9 +358,9 @@
- +
@@ -378,9 +378,9 @@
- +
@@ -399,9 +399,9 @@
- +
@@ -462,9 +462,9 @@
- +
@@ -519,9 +519,9 @@ - +
@@ -530,9 +530,9 @@
- +
diff --git a/docs/CodeGenerator.html b/docs/CodeGenerator.html index 5ca40afc33f..50036f2ed73 100644 --- a/docs/CodeGenerator.html +++ b/docs/CodeGenerator.html @@ -19,9 +19,9 @@ -
+

The LLVM Target-Independent Code Generator -

+
  1. Introduction @@ -127,9 +127,9 @@
- +
@@ -191,9 +191,9 @@
- +
@@ -223,9 +223,9 @@
- +
@@ -297,9 +297,9 @@
- +
@@ -325,9 +325,9 @@
- +
@@ -349,9 +349,9 @@
- +
@@ -369,9 +369,9 @@
- +
@@ -385,9 +385,9 @@
- +
@@ -411,9 +411,9 @@
- +
@@ -445,9 +445,9 @@
- +
@@ -463,9 +463,9 @@
- +
@@ -479,9 +479,9 @@
- +
@@ -495,9 +495,9 @@ - +
@@ -510,9 +510,9 @@
- +
@@ -531,9 +531,9 @@
- +
@@ -579,9 +579,9 @@
- +
@@ -630,9 +630,9 @@ MI.addReg(Reg, RegState::Define);
- +
@@ -702,9 +702,9 @@ ret
- +
@@ -720,9 +720,9 @@ ret
- +
@@ -737,9 +737,9 @@ ret
- +
@@ -756,9 +756,9 @@ ret - +
@@ -783,9 +783,9 @@ in this manual. - +
@@ -817,9 +817,9 @@ MCObjectStreamer implements a full assembler.
- +
@@ -832,9 +832,9 @@ interact with to create symbols and sections. This class can not be subclassed.
- +
@@ -864,9 +864,9 @@ like this to the .s file:

- +
@@ -882,9 +882,9 @@ directive in a .s file).
- +
@@ -906,9 +906,9 @@ printer, and the type generated by the assembly parser and disassembler. - +
@@ -920,9 +920,9 @@ printer, and the type generated by the assembly parser and disassembler.
- +
@@ -939,9 +939,9 @@ printer, and the type generated by the assembly parser and disassembler.
- +
@@ -1001,9 +1001,9 @@ printer, and the type generated by the assembly parser and disassembler.
- +
@@ -1082,9 +1082,9 @@ printer, and the type generated by the assembly parser and disassembler.
- +
@@ -1102,9 +1102,9 @@ printer, and the type generated by the assembly parser and disassembler.
- +
@@ -1135,9 +1135,9 @@ printer, and the type generated by the assembly parser and disassembler.
- +
@@ -1167,10 +1167,11 @@ printer, and the type generated by the assembly parser and disassembler.
- +

+ + SelectionDAG Optimization Phase: the DAG Combiner + +

@@ -1202,9 +1203,9 @@ printer, and the type generated by the assembly parser and disassembler.
- +
@@ -1363,9 +1364,9 @@ def : Pat<(i32 imm:$imm),
- +
@@ -1384,9 +1385,9 @@ def : Pat<(i32 imm:$imm),
- +
@@ -1399,15 +1400,15 @@ def : Pat<(i32 imm:$imm),
- +

To Be Written

- +
@@ -1420,9 +1421,9 @@ def : Pat<(i32 imm:$imm),
- +
@@ -1466,9 +1467,9 @@ def : Pat<(i32 imm:$imm),
- +
@@ -1486,9 +1487,9 @@ def : Pat<(i32 imm:$imm),
- +
@@ -1504,9 +1505,9 @@ def : Pat<(i32 imm:$imm), - +
@@ -1617,9 +1618,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, - +
@@ -1667,9 +1668,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf,
- +
@@ -1703,9 +1704,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf,
- +
@@ -1727,9 +1728,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf,
- +
@@ -1764,9 +1765,9 @@ bool RegMapping_Fer::compatible_class(MachineFunction &mf, - +
@@ -1806,20 +1807,20 @@ $ llc -regalloc=pbqp file.bc -o pbqp.s;
- +

To Be Written

- +

To Be Written

- +
@@ -1882,9 +1883,9 @@ to implement an assembler for your target.

- +
@@ -1899,15 +1900,15 @@ compiler.

-
Instruction Parsing
+

Instruction Parsing

To Be Written

-
+

Instruction Alias Processing -

+

Once the instruction is parsed, it enters the MatchInstructionImpl function. @@ -1925,7 +1926,7 @@ description.

-
Mnemonic Aliases
+

Mnemonic Aliases

@@ -1965,7 +1966,7 @@ on the current instruction set.

-
Instruction Aliases
+

Instruction Aliases

@@ -2031,7 +2032,7 @@ subtarget specific.

-
Instruction Matching
+

Instruction Matching

To Be Written

@@ -2039,9 +2040,9 @@ subtarget specific.

- +
@@ -2053,9 +2054,9 @@ subtarget specific.

- +
@@ -2231,7 +2232,7 @@ is the key:

-
Is Generally Reliable
+

Is Generally Reliable

This box indicates whether the target is considered to be production quality. @@ -2241,7 +2242,7 @@ continuous use.

-
Assembly Parser
+

Assembly Parser

This box indicates whether the target supports parsing target specific .s @@ -2253,7 +2254,7 @@ support in the native .o file writer.

-
Disassembler
+

Disassembler

This box indicates whether the target supports the MCDisassembler API for @@ -2262,7 +2263,7 @@ disassembling machine opcode bytes into MCInst's.

-
Inline Asm
+

Inline Asm

This box indicates whether the target supports most popular inline assembly @@ -2274,7 +2275,7 @@ constraints relating to the X86 floating point stack.

-
JIT Support
+

JIT Support

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.

-
.o File Writing
+

.o File Writing

@@ -2302,7 +2303,7 @@ file to a .o file (as is the case for many C compilers).

-
Tail Calls
+

Tail Calls

@@ -2317,9 +2318,9 @@ more more details.

- +
@@ -2383,9 +2384,9 @@ define fastcc i32 @tailcaller(i32 %in1, i32 %in2) {
- +
@@ -2427,9 +2428,9 @@ entry:
- +
@@ -2440,9 +2441,9 @@ entry:
- +
@@ -2469,9 +2470,9 @@ entry:
- +
@@ -2489,9 +2490,9 @@ entry:
- +
@@ -2526,9 +2527,9 @@ OperandTy: VirtReg, | VirtReg, UnsImm, VirtReg, SignExtImm PhysReg
- +
@@ -2571,9 +2572,9 @@ OperandTy: VirtReg, | VirtReg, UnsImm, VirtReg, SignExtImm PhysReg
- +
@@ -2592,9 +2593,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory
- +
@@ -2605,9 +2606,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory
- +
@@ -2625,9 +2626,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory
- +
@@ -2772,9 +2773,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory
- +
@@ -2789,9 +2790,9 @@ MOVSX32rm16 -> movsx, 32-bit register, 16-bit memory
- +
diff --git a/docs/CodingStandards.html b/docs/CodingStandards.html index 11655e01bac..ca31cab2ca0 100644 --- a/docs/CodingStandards.html +++ b/docs/CodingStandards.html @@ -7,9 +7,9 @@ -
+

LLVM Coding Standards -

+
  1. Introduction
  2. @@ -83,9 +83,9 @@ - +
    @@ -117,20 +117,20 @@ href="mailto:sabre@nondot.org">Chris.

    - + - + - +
    @@ -208,9 +208,9 @@ happens: does the method return null? Abort? Format your hard disk?

    - +
    @@ -233,9 +233,9 @@ These nest properly and are better behaved in general than C style comments.

    - +
    @@ -273,9 +273,9 @@ implements are defined.

    - +
    @@ -298,9 +298,9 @@ for debate.

    - +
    @@ -319,9 +319,9 @@ makes for incredible diffs that are absolutely worthless.

    - +
    @@ -333,15 +333,15 @@ Just do it.

    - + - +
    @@ -393,9 +393,9 @@ be fixed by massaging the code appropriately.

    - +
    @@ -412,9 +412,9 @@ libSystem.

    - +

    In an effort to reduce code and executable size, LLVM does not use RTTI @@ -433,9 +433,9 @@ than dynamic_cast<>.

    - +

    In C++, the class and struct keywords can be used almost @@ -455,23 +455,23 @@ which case struct is allowed.

    - + - + - +
    @@ -499,9 +499,9 @@ translation unit.

    - +
    @@ -528,9 +528,9 @@ dependencies that you'll find out about later.

    - +
    @@ -549,9 +549,9 @@ class itself. Just make them private (or protected) and all is well.

    - +
    @@ -658,9 +658,9 @@ can be a big understandability win.

    - +
    @@ -741,9 +741,9 @@ track of when reading the code.

    - +
    @@ -804,16 +804,18 @@ locality.

    - + - +

    + + Name Types, Functions, Variables, and Enumerators Properly + +

    @@ -894,9 +896,9 @@ Vehicle MakeVehicle(VehicleType Type) { - +
    @@ -997,9 +999,9 @@ assert(NewToSet && "The value shouldn't be in the set yet");
    - +
    @@ -1035,10 +1037,11 @@ use any others.

    - +

    + + Provide a Virtual Method Anchor for Classes in Headers + +

    @@ -1052,9 +1055,9 @@ increasing link times.

    - +
    @@ -1114,9 +1117,9 @@ prefer it.

    - +
    @@ -1149,9 +1152,9 @@ the llvm::MemoryBuffer API for reading files.

    - +
    @@ -1169,9 +1172,9 @@ declarations and constant references to raw_ostream instances.

    - +
    @@ -1193,18 +1196,18 @@ it's better to use a literal '\n'.

    - +

    This section describes preferred low-level formatting guidelines along with reasoning on why we prefer them.

    - +
    @@ -1260,9 +1263,9 @@ this misinterpretation.

    - +
    @@ -1280,9 +1283,9 @@ get in the habit of always using preincrement, and you won't have a problem.

    - +
    @@ -1368,9 +1371,9 @@ the contents of the namespace.

    - +
    @@ -1455,9 +1458,9 @@ namespace just because it was declared there. - +
    diff --git a/docs/CommandGuide/index.html b/docs/CommandGuide/index.html index 4ab1b511653..98e97ee000f 100644 --- a/docs/CommandGuide/index.html +++ b/docs/CommandGuide/index.html @@ -7,9 +7,9 @@ -
    +

    LLVM Command Guide -

    +
    @@ -23,9 +23,9 @@ options) arguments to the tool you are interested in.

    - +
    @@ -80,9 +80,9 @@ options) arguments to the tool you are interested in.

    - +
    @@ -99,9 +99,9 @@ options) arguments to the tool you are interested in.

    - + @@ -123,9 +123,9 @@ options) arguments to the tool you are interested in.

    - +
    diff --git a/docs/CommandLine.html b/docs/CommandLine.html index 83b2ebbe511..0bcd38267cc 100644 --- a/docs/CommandLine.html +++ b/docs/CommandLine.html @@ -8,9 +8,9 @@ -
    +

    CommandLine 2.0 Library Manual -

    +
    1. Introduction
    2. @@ -100,9 +100,9 @@
    - +
    @@ -184,9 +184,9 @@ href="mailto:sabre@nondot.org">Chris Lattner.

    - +
    @@ -324,9 +324,9 @@ OPTIONS:
    - +
    @@ -406,9 +406,9 @@ and lists of options.

    - +
    @@ -456,10 +456,10 @@ uses.

    - +
    @@ -567,9 +567,9 @@ which is when you would use it.

    - +
    @@ -629,9 +629,9 @@ that you can choose the form most appropriate for your application.

    - +
    @@ -699,9 +699,9 @@ checking we have to do.

    - +
    @@ -758,9 +758,9 @@ href="#list"> cl::list option.

    - +
    @@ -802,9 +802,9 @@ OPTIONS: - +
    @@ -817,9 +817,9 @@ processing capabilities.

    - +
    @@ -858,9 +858,9 @@ define all of your positional arguments in one .cpp file.

    - +
    @@ -895,9 +895,9 @@ can use it like this:

    - +

    Sometimes an option can affect or modify the meaning of another option. For example, consider gcc's -x LANG option. This tells @@ -954,9 +954,9 @@ can use it like this:

    - +
    @@ -1007,9 +1007,9 @@ href="#cl::list">cl::list option.

    - +
    @@ -1076,9 +1076,9 @@ that DebugFlag is automatically set.

    - +
    @@ -1166,9 +1166,9 @@ obviously).
    - +
    @@ -1199,9 +1199,9 @@ usually shouldn't have to worry about these.

    - +
    @@ -1230,10 +1230,10 @@ indicates that the option should not appear in any help output.
    - +
    @@ -1279,9 +1279,9 @@ retained.

    - +
    @@ -1328,9 +1328,9 @@ when extending the library.

    - +
    @@ -1409,9 +1409,9 @@ strategy basically looks like this:

    - +
    @@ -1453,9 +1453,9 @@ only makes sense with a cl::list option.
    - +
    @@ -1476,9 +1476,9 @@ and - +
    @@ -1493,10 +1493,10 @@ classes in detail.

    - +
    @@ -1514,10 +1514,10 @@ which holds additional extra text to emit when the
    - +
    @@ -1551,10 +1551,10 @@ input.

    - +
    @@ -1572,9 +1572,9 @@ called when the --version option is given by the user.

    - +
    @@ -1607,9 +1607,9 @@ href="#customparser">custom parser.

    - +
    @@ -1634,9 +1634,9 @@ be used.

    - +
    @@ -1659,9 +1659,9 @@ must be of type unsigned if external storage is used.

    - +
    @@ -1682,9 +1682,9 @@ the conversion from string to data.

    - +
    @@ -1710,9 +1710,9 @@ single cl::extrahelp instance.

    - +
    @@ -1774,9 +1774,9 @@ exponential notation (ex: 1.7e15) and properly supports locales.
    - +
    @@ -1789,9 +1789,9 @@ the covers and illustrates how to do some simple, common, extensions.

    - +
    @@ -1932,9 +1932,9 @@ tutorial.

    - +

    Several of the LLVM libraries define static cl::opt instances that @@ -1951,9 +1951,9 @@ tutorial.

    - +
    diff --git a/docs/CompilerWriterInfo.html b/docs/CompilerWriterInfo.html index daee9316727..6be1b63e652 100644 --- a/docs/CompilerWriterInfo.html +++ b/docs/CompilerWriterInfo.html @@ -9,9 +9,9 @@ -
    +

    Architecture/platform information for compiler writers -

    +

    Note: This document is a work-in-progress. Additions and clarifications @@ -43,11 +43,11 @@

    - +

    Hardware

    - +

    Alpha

      @@ -58,7 +58,7 @@ href="http://ftp.digital.com/pub/Digital/info/semiconductor/literature/dsc-libra
    - +

    ARM

      @@ -70,7 +70,7 @@ Cores)
    - +

    Itanium (ia64)

      @@ -81,7 +81,7 @@ href="http://developer.intel.com/design/itanium2/documentation.htm">Itanium docu
    - +

    MIPS

      @@ -92,10 +92,10 @@ Processor Architecture
    - +

    PowerPC

    -
    IBM - Official manuals and docs
    +

    IBM - Official manuals and docs

    @@ -129,7 +129,7 @@ PowerPC architecture
    -
    Other documents, collections, notes
    +

    Other documents, collections, notes

    @@ -144,7 +144,7 @@ branch stubs for powerpc64-linux (from binutils)
    - +

    SPARC

    @@ -156,10 +156,10 @@ branch stubs for powerpc64-linux (from binutils)
    - +

    X86

    -
    AMD - Official manuals and docs
    +

    AMD - Official manuals and docs

      @@ -170,7 +170,7 @@ href="http://www.amd.com/us-en/Processors/TechnicalResources/0,,30_182_739,00.ht
    -
    Intel - Official manuals and docs
    +

    Intel - Official manuals and docs

      @@ -184,7 +184,7 @@ Itanium documentation
    -
    Other x86-specific information
    +

    Other x86-specific information

      @@ -194,7 +194,7 @@ conventions for different C++ compilers and operating systems
    - +

    Other relevant lists

    @@ -205,11 +205,11 @@ conventions for different C++ compilers and operating systems
    - +

    ABI

    - +

    Linux

      @@ -219,7 +219,7 @@ Supplement
    - +

    OS X

      @@ -233,7 +233,7 @@ ABI
    - +

    Miscellaneous resources

      diff --git a/docs/DebuggingJITedCode.html b/docs/DebuggingJITedCode.html index 5b174d76565..f23fdf6f391 100644 --- a/docs/DebuggingJITedCode.html +++ b/docs/DebuggingJITedCode.html @@ -7,7 +7,7 @@ -
      Debugging JITed Code With GDB
      +

      Debugging JITed Code With GDB

      1. Example usage
      2. Background
      3. @@ -15,7 +15,7 @@
        Written by Reid Kleckner
        - +

        Example usage

        @@ -96,7 +96,7 @@ function names.
        - +

        Background

        diff --git a/docs/DeveloperPolicy.html b/docs/DeveloperPolicy.html index 633de1aa03f..5d6c2d85590 100644 --- a/docs/DeveloperPolicy.html +++ b/docs/DeveloperPolicy.html @@ -8,7 +8,7 @@ -
        LLVM Developer Policy
        +

        LLVM Developer Policy

        1. Introduction
        2. Developer Policies @@ -34,7 +34,7 @@
          Written by the LLVM Oversight Team
          - +

          Introduction

          This document contains the LLVM Developer Policy which defines the project's @@ -63,7 +63,7 @@

          - +

          Developer Policies

          This section contains policies that pertain to frequent LLVM developers. We @@ -75,7 +75,7 @@

          - +

          Stay Informed

          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 @@

          - +

          Making a Patch

          When making a patch for review, the goal is to make it as easy for the @@ -142,7 +142,7 @@

          - +

          Code Reviews

          LLVM has a code review policy. Code review is one way to increase the quality of software. We generally follow these policies:

          @@ -174,7 +174,7 @@
          - +

          Code Owners

          The LLVM Project relies on two features of its process to maintain rapid @@ -225,7 +225,7 @@

          - +

          Test Cases

          Developers are required to create test cases for any bugs fixed and any new features added. Some tips for getting your testcase approved:

          @@ -258,7 +258,7 @@
          - +

          Quality

          The minimum quality standards that any change must satisfy before being committed to the main development branch are:

          @@ -318,8 +318,7 @@
          - +

          Obtaining Commit Access

          We grant commit access to contributors with a track record of submitting high @@ -381,7 +380,7 @@

          - +

          Making a Major Change

          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 @@

          - +

          Incremental Development

          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 @@

          - +

          Attribution of Changes

          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

        - +
        @@ -507,7 +504,7 @@ Changes
    - +

    Copyright

    The LLVM project does not require copyright assignments, which means that the @@ -530,7 +527,7 @@ Changes

    - +

    License

    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

    - +

    Patents

    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 1738bdf5cc1..09e09461429 100644 --- a/docs/ExceptionHandling.html +++ b/docs/ExceptionHandling.html @@ -11,7 +11,7 @@ -

    Exception Handling in LLVM
    +

    Exception Handling in LLVM

    @@ -58,7 +58,7 @@ - +

    Introduction

    @@ -73,9 +73,9 @@
    - +
    @@ -106,9 +106,9 @@
    - +
    @@ -138,9 +138,9 @@
    - +
    @@ -186,9 +186,9 @@
    - +
    @@ -203,9 +203,9 @@
    -
    +

    Throw -

    +
    @@ -225,9 +225,9 @@
    - +
    @@ -313,9 +313,9 @@
    - +
    @@ -332,9 +332,9 @@
    - +
    @@ -359,9 +359,9 @@
    - +
    @@ -385,9 +385,9 @@
    - +
    @@ -398,9 +398,9 @@
    - +
    @@ -413,9 +413,9 @@
    - +
    @@ -445,9 +445,9 @@
    - +
    @@ -463,9 +463,9 @@
    - +
    @@ -492,9 +492,9 @@
    - +
    @@ -512,9 +512,9 @@
    - +
    @@ -531,9 +531,9 @@
    - +
    @@ -549,9 +549,9 @@
    - +
    @@ -566,9 +566,9 @@
    - +
    @@ -578,9 +578,9 @@
    - +
    @@ -596,9 +596,9 @@
    - +
    @@ -612,9 +612,9 @@
    -
    +

    ToDo -

    +
    diff --git a/docs/ExtendingLLVM.html b/docs/ExtendingLLVM.html index df706eac557..7f77bb77921 100644 --- a/docs/ExtendingLLVM.html +++ b/docs/ExtendingLLVM.html @@ -8,9 +8,9 @@ -
    +

    Extending LLVM: Adding instructions, intrinsics, types, etc. -

    +
    1. Introduction and Warning
    2. @@ -31,9 +31,9 @@
    - +
    @@ -68,9 +68,9 @@ effort by doing so.

    - +
    @@ -130,9 +130,9 @@ support for it. Generally you must do the following steps:

    - +
    @@ -220,9 +220,9 @@ complicated behavior in a single node (rotate).

    - +
    @@ -277,9 +277,9 @@ to understand this new instruction.

    - +
    @@ -291,9 +291,9 @@ installations. Only add new types if it is absolutely necessary.

    - +
    @@ -317,9 +317,9 @@ installations. Only add new types if it is absolutely necessary.

    - +
    diff --git a/docs/FAQ.html b/docs/FAQ.html index ae3a0da6f81..620cf2500a4 100644 --- a/docs/FAQ.html +++ b/docs/FAQ.html @@ -12,9 +12,9 @@ -
    +

    LLVM: Frequently Asked Questions -

    +
    1. License @@ -138,9 +138,9 @@ -
      +

      License -

      +
      @@ -189,9 +189,9 @@
      - +
      @@ -227,9 +227,9 @@ LLVM have been ported to a plethora of platforms.

      - +
      @@ -449,7 +449,9 @@ Stop.
      - +

      + Source Languages +

      What source languages are supported?

      @@ -555,9 +557,9 @@ Stop.
      - +

      When I compile software that uses a configure script, the configure script @@ -712,9 +714,9 @@ Stop.

      - +

      What is this llvm.global_ctors and diff --git a/docs/GCCFEBuildInstrs.html b/docs/GCCFEBuildInstrs.html index 6714a4988ae..f3c94594977 100644 --- a/docs/GCCFEBuildInstrs.html +++ b/docs/GCCFEBuildInstrs.html @@ -8,9 +8,9 @@ -

      +
      1. Building llvm-gcc from Source
      2. diff --git a/docs/GarbageCollection.html b/docs/GarbageCollection.html index bd114b562fc..aa83a2d6d83 100644 --- a/docs/GarbageCollection.html +++ b/docs/GarbageCollection.html @@ -13,9 +13,9 @@ -
        +

        Accurate Garbage Collection with LLVM -

        +
        1. Introduction @@ -79,9 +79,9 @@
      - +
      @@ -127,9 +127,9 @@ support accurate garbage collection.

      - +
      @@ -199,9 +199,9 @@ compiler matures.

      - +
      @@ -249,9 +249,9 @@ into llc and works even with the interpreter and C backends.

      - +
      @@ -276,9 +276,9 @@ switching to a more advanced GC.

      - +
      @@ -343,9 +343,9 @@ void visitGCRoots(void (*Visitor)(void **Root, const void *Meta)) { }
      - +
      @@ -373,9 +373,9 @@ in order to improve performance.

      - +
      @@ -393,9 +393,9 @@ program.

      - +
      define ty @name(...) gc "name" { ... @@ -418,9 +418,9 @@ programs that use different garbage collection algorithms (or none at all).

      - +
      void @llvm.gcroot(i8** %ptrloc, i8* %metadata) @@ -494,9 +494,9 @@ CodeBlock:
      - +
      @@ -537,9 +537,9 @@ are used.

      - +
      void @llvm.gcwrite(i8* %value, i8* %object, i8** %derived) @@ -559,9 +559,9 @@ implement reference counting.

      - +
      i8* @llvm.gcread(i8* %object, i8** %derived)
      @@ -581,9 +581,9 @@ writes.

      - +
      @@ -669,9 +669,9 @@ as a language-specific compiler front-end.

      - +
      @@ -958,9 +958,9 @@ interest.

      - +
      @@ -1014,9 +1014,9 @@ for collector plugins which implement reference counting or a shadow stack.

      - +
      @@ -1039,10 +1039,10 @@ this feature should be used by all GC plugins. It is enabled by default.

      - +
      @@ -1129,9 +1129,9 @@ bool MyGC::performCustomLowering(Function &F) { - +
      @@ -1193,9 +1193,9 @@ safe point (because only the topmost function has been patched).

      - +
      @@ -1343,9 +1343,9 @@ void MyGCPrinter::finishAssembly(std::ostream &OS, AsmPrinter &AP, - +
      diff --git a/docs/GetElementPtr.html b/docs/GetElementPtr.html index 9e3f8bb2bca..d1c5b6c5367 100644 --- a/docs/GetElementPtr.html +++ b/docs/GetElementPtr.html @@ -11,9 +11,9 @@ -
      +

      The Often Misunderstood GEP Instruction -

      +
      1. Introduction
      2. @@ -58,7 +58,7 @@ - +

        Introduction

        @@ -72,7 +72,7 @@
        - +

        Address Computation

        When people are first confronted with the GEP instruction, they tend to @@ -83,9 +83,9 @@

        - +

        + What is the first index of the GEP instruction? +

        Quick answer: The index stepping through the first operand.

        The confusion with the first index usually arises from thinking about @@ -205,9 +205,9 @@ idx3 = (char*) &MyVar + 8

        - +

        + Why is the extra 0 index required? +

        Quick answer: there are no superfluous indices.

        @@ -247,9 +247,9 @@ idx3 = (char*) &MyVar + 8
        - +

        + What is dereferenced by GEP? +

        Quick answer: nothing.

        The GetElementPtr instruction dereferences nothing. That is, it doesn't @@ -302,9 +302,9 @@ idx3 = (char*) &MyVar + 8

        - +

        + Why don't GEP x,0,0,1 and GEP x,1 alias? +

        Quick Answer: They compute different address locations.

        If you look at the first indices in these GEP @@ -331,9 +331,9 @@ idx3 = (char*) &MyVar + 8

        - +

        + Why do GEP x,1,0,0 and GEP x,1 alias? +

        Quick Answer: They compute the same address location.

        These two GEP instructions will compute the same address because indexing @@ -355,9 +355,9 @@ idx3 = (char*) &MyVar + 8 -

        +

        + Can GEP index into vector elements? +

        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 -

        +

        + What effect do address spaces have on GEPs? +

        None, except that the address space qualifier on the first operand pointer type always matches the address space qualifier on the result type.

        @@ -379,10 +379,11 @@ idx3 = (char*) &MyVar + 8 - +

        + + How is GEP different from ptrtoint, arithmetic, and inttoptr? + +

        It's very similar; there are only subtle differences.

        @@ -409,10 +410,12 @@ idx3 = (char*) &MyVar + 8 - +

        + + I'm writing a backend for a target which needs custom lowering for GEP. + How do I do this? + +

        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 -

        +

        + How does VLA addressing work with GEPs? +

        GEPs don't natively support VLAs. LLVM's type system is entirely static, and GEP address computations are guided by an LLVM type.

        @@ -451,14 +454,14 @@ idx3 = (char*) &MyVar + 8
        - +

        Rules

        - +

        + What happens if an array index is out of bounds? +

        There are two senses in which an array index can be out of bounds.

        @@ -498,9 +501,9 @@ idx3 = (char*) &MyVar + 8
        - +

        + Can array indices be negative? +

        Yes. This is basically a special case of array indices being out of bounds.

        @@ -508,9 +511,9 @@ idx3 = (char*) &MyVar + 8
        - +

        + Can I compare two values computed with GEPs? +

        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

        - +

        + + Can I do GEP with a different pointer type than the type of + the underlying object? + +

        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

        - +

        + + Can I cast an object's address to integer and add it to null? + +

        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

        - +

        + + Can I compute the distance between two objects, and add + that value to one address to compute the other address? + +

        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

        - +

        + Can I do type-based alias analysis on LLVM IR? +

        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 -

        +

        + What happens if a GEP computation overflows? +

        If the GEP lacks the inbounds keyword, the value is the result from evaluating the implied two's complement integer computation. However, @@ -624,10 +632,11 @@ idx3 = (char*) &MyVar + 8 -

        +

        + + How can I tell if my front-end is following the rules? + +

        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

        - +

        Rationale

        - +

        + Why is GEP designed this way? +

        The design of GEP has the following goals, in rough unofficial order of priority:

        @@ -669,9 +678,9 @@ idx3 = (char*) &MyVar + 8
        - +

        + Why do struct member indices always use i32? +

        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 -

        +

        + What's an uglygep? +

        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

        - +

        Summary

        diff --git a/docs/GettingStarted.html b/docs/GettingStarted.html index d6706119708..2bca7ae643a 100644 --- a/docs/GettingStarted.html +++ b/docs/GettingStarted.html @@ -8,9 +8,9 @@ -
        +

        Getting Started with the LLVM System -

        +
        - +

        Qualify Clang

        @@ -429,8 +428,7 @@ Building the Release
        - +

        Specific Target Qualification Details

        @@ -447,7 +445,7 @@ Qualification Details
        - +

        Community Testing

        Once all testing has been completed and appropriate bugs filed, the release @@ -484,7 +482,7 @@ Qualification Details

        - +

        Release Patch Rules

        @@ -508,8 +506,7 @@ Qualification Details
        - +

        Release Final Tasks

        @@ -521,7 +518,7 @@ Qualification Details
        - +

        Update Documentation

        @@ -535,7 +532,7 @@ Qualification Details
        - +

        Tag the LLVM Final Release

        @@ -560,7 +557,7 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \
        - +

        Update the LLVM Demo Page

        @@ -570,7 +567,7 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \
        - +

        Update the LLVM Website

        @@ -606,7 +603,7 @@ $ svn copy https://llvm.org/svn/llvm-project/cfe/branches/release_XY \
        - +

        Announce the Release

        diff --git a/docs/HowToSubmitABug.html b/docs/HowToSubmitABug.html index b9d8362e32a..ca34384621b 100644 --- a/docs/HowToSubmitABug.html +++ b/docs/HowToSubmitABug.html @@ -7,9 +7,9 @@ -
        +

        How to submit an LLVM bug report -

        +
    @@ -37,9 +37,9 @@
    - +
    @@ -76,9 +76,9 @@ information:

    - +
    @@ -112,9 +112,9 @@ with the following extra command line options:

    - +
    @@ -137,9 +137,9 @@ has instructions on the best way to use delta.

    - +
    @@ -171,9 +171,9 @@ that bugpoint emits. If something goes wrong with bugpoint, please submit the
    - +
    @@ -208,9 +208,9 @@ that bugpoint emits. If something goes wrong with bugpoint, please submit the
    - +
    @@ -241,9 +241,9 @@ error.

    - +
    diff --git a/docs/LangRef.html b/docs/LangRef.html index 8c5ba804c74..69e0a75951f 100644 --- a/docs/LangRef.html +++ b/docs/LangRef.html @@ -12,7 +12,7 @@ -
    LLVM Language Reference Manual
    +

    LLVM Language Reference Manual

    1. Abstract
    2. Introduction
    3. @@ -321,7 +321,7 @@
    - +

    Abstract

    @@ -335,7 +335,7 @@
    - +

    Introduction

    @@ -362,7 +362,9 @@
    - +

    + Well-Formedness +

    @@ -387,7 +389,7 @@ - +

    Identifiers

    @@ -475,12 +477,13 @@
    - +

    High Level Structure

    - +

    + Module Structure +

    @@ -528,9 +531,9 @@ define i32 @main() { ; i32()*  
    - +
    @@ -677,9 +680,9 @@ define i32 @main() { ; i32()*  
    - +
    @@ -750,9 +753,9 @@ define i32 @main() { ; i32()*  
    - +
    @@ -784,9 +787,9 @@ define i32 @main() { ; i32()*  
    - +
    @@ -815,9 +818,9 @@ define i32 @main() { ; i32()*  
    - +
    @@ -883,9 +886,9 @@ define i32 @main() { ; i32()*   - +
    @@ -946,9 +949,9 @@ define [linkage] [visibility]
    -
    +

    Aliases -

    +
    @@ -965,9 +968,9 @@ define [linkage] [visibility]
    - +
    @@ -988,7 +991,9 @@ define [linkage] [visibility]
    - +

    + Parameter Attributes +

    @@ -1097,9 +1102,9 @@ declare signext i8 @returns_signed_char()
    - +
    @@ -1117,9 +1122,9 @@ define void @f() gc "name" { ... }
    - +
    @@ -1240,9 +1245,9 @@ define void @f() optsize { ... }
    - +
    @@ -1266,9 +1271,9 @@ module asm "more can go here"
    - +
    @@ -1378,9 +1383,9 @@ target datalayout = "layout specification"
    - +
    @@ -1442,9 +1447,9 @@ to implement type-based alias analysis.

    - +
    @@ -1460,7 +1465,7 @@ synchronization behavior.

    - +

    Type System

    @@ -1476,8 +1481,9 @@ synchronization behavior.

    - +

    + Type Classifications +

    @@ -1536,7 +1542,9 @@ Classifications
    - +

    + Primitive Types +

    @@ -1546,7 +1554,9 @@ Classifications
    - +

    + Integer Type +

    @@ -1582,7 +1592,9 @@ Classifications
    - +

    + Floating Point Types +

    @@ -1600,7 +1612,9 @@ Classifications
    - +

    + X86mmx Type +

    @@ -1615,7 +1629,9 @@ Classifications
    - +

    + Void Type +

    @@ -1630,7 +1646,9 @@ Classifications
    - +

    + Label Type +

    @@ -1645,7 +1663,9 @@ Classifications
    - +

    + Metadata Type +

    @@ -1663,7 +1683,9 @@ Classifications
    - +

    + Derived Types +

    @@ -1678,7 +1700,9 @@ Classifications
    - +

    + Aggregate Types +

    @@ -1690,7 +1714,9 @@ Classifications
    - +

    + Array Type +

    @@ -1748,7 +1774,9 @@ Classifications
    - +

    + Function Type +

    @@ -1801,7 +1829,9 @@ Classifications
    - +

    + Structure Type +

    @@ -1839,8 +1869,9 @@ Classifications
    - +

    + Packed Structure Type +

    @@ -1877,7 +1908,9 @@ Classifications
- +

+ Pointer Type +

@@ -1921,7 +1954,9 @@ Classifications
- +

+ Vector Type +

@@ -1960,7 +1995,10 @@ Classifications
- +

+ Opaque Type +

+
Overview:
@@ -1985,9 +2023,9 @@ Classifications
- +
@@ -2033,7 +2071,7 @@ Classifications
- +

Constants

@@ -2044,7 +2082,9 @@ Classifications
- +

+ Simple Constants +

@@ -2099,10 +2139,10 @@ Classifications
- +
@@ -2154,9 +2194,9 @@ Classifications
- +
@@ -2176,7 +2216,10 @@ Classifications
- +

+ Undefined Values +

+

The string 'undef' can be used anywhere a constant is expected, and @@ -2316,7 +2359,10 @@ b: unreachable

- +

+ Trap Values +

+

Trap values are similar to undef values, however @@ -2441,8 +2487,10 @@ second_end:

- +

+ Addresses of Basic Blocks +

+

blockaddress(@function, %block)

@@ -2468,8 +2516,9 @@ second_end: - +

+ Constant Expressions +

@@ -2598,13 +2647,13 @@ second_end:
- +

Other Values

- +
@@ -2657,9 +2706,9 @@ call void asm alignstack "eieio", ""() another document that covers inline asm from a holistic perspective.

- +
@@ -2683,9 +2732,9 @@ call void asm sideeffect "something bad", ""(), !srcloc !42
- +

+ Metadata Nodes and Metadata Strings +

@@ -2731,9 +2780,9 @@ call void @llvm.dbg.value(metadata !24, i64 0, metadata !25) - +

LLVM has a number of "magic" global variables that contain data that affect @@ -2743,9 +2792,9 @@ section and all globals that start with "llvm." are reserved for use by LLVM.

- +
@@ -2778,9 +2827,11 @@ object file to prevent the assembler and linker from molesting the symbol.

- +

+ + The 'llvm.compiler.used' Global Variable + +

@@ -2796,9 +2847,9 @@ should not be exposed to source languages.

- +
@@ -2811,9 +2862,9 @@ should not be exposed to source languages.

- +
@@ -2828,7 +2879,7 @@ should not be exposed to source languages.

- +

Instruction Reference

@@ -2843,8 +2894,9 @@ should not be exposed to source languages.

- +

+ Terminator Instructions +

@@ -2867,8 +2919,9 @@ Instructions
- +

+ 'ret' Instruction +

@@ -2916,7 +2969,9 @@ Instruction
- +

+ 'br' Instruction +

@@ -2957,9 +3012,9 @@ IfUnequal:
- +
@@ -3012,9 +3067,9 @@ IfUnequal: - +
@@ -3060,9 +3115,9 @@ IfUnequal: - +
@@ -3150,8 +3205,9 @@ that the invoke/unwind semantics are likely to change in future versions.

- +

+ 'unwind' Instruction +

@@ -3181,8 +3237,9 @@ that the invoke/unwind semantics are likely to change in future versions.

- +

+ 'unreachable' Instruction +

@@ -3203,7 +3260,9 @@ Instruction
- +

+ Binary Operations +

@@ -3218,9 +3277,9 @@ Instruction
- +
@@ -3263,9 +3322,9 @@ Instruction
- +
@@ -3293,9 +3352,9 @@ Instruction
- +
@@ -3345,9 +3404,9 @@ Instruction
- +
@@ -3381,9 +3440,9 @@ Instruction
- +
@@ -3431,9 +3490,9 @@ Instruction
- +
@@ -3461,8 +3520,9 @@ Instruction
- +

+ 'udiv' Instruction +

@@ -3501,8 +3561,9 @@ Instruction
- +

+ 'sdiv' Instruction +

@@ -3543,8 +3604,9 @@ Instruction
- +

+ 'fdiv' Instruction +

@@ -3572,8 +3634,9 @@ Instruction
- +

+ 'urem' Instruction +

@@ -3609,9 +3672,9 @@ Instruction
- +
@@ -3660,8 +3723,9 @@ Instruction
- +

+ 'frem' Instruction +

@@ -3691,8 +3755,9 @@ Instruction
- +

+ Bitwise Binary Operations +

@@ -3705,8 +3770,9 @@ Operations
- +

+ 'shl' Instruction +

@@ -3755,8 +3821,9 @@ Instruction
- +

+ 'lshr' Instruction +

@@ -3801,8 +3868,10 @@ Instruction
- +

+ 'ashr' Instruction +

+
Syntax:
@@ -3846,8 +3915,9 @@ Instruction
- +

+ 'and' Instruction +

@@ -3906,7 +3976,9 @@ Instruction
- +

+ 'or' Instruction +

@@ -3967,8 +4039,9 @@ Instruction
- +

+ 'xor' Instruction +

@@ -4031,9 +4104,9 @@ Instruction
- +
@@ -4047,9 +4120,9 @@ Instruction
- +
@@ -4083,9 +4156,9 @@ Instruction
- +
@@ -4119,9 +4192,9 @@ Instruction
- +
@@ -4167,9 +4240,9 @@ Instruction
- +
@@ -4179,9 +4252,9 @@ Instruction
- +
@@ -4221,9 +4294,9 @@ Instruction
- +
@@ -4261,9 +4334,9 @@ Instruction
- +
@@ -4275,9 +4348,9 @@ Instruction
- +
@@ -4326,8 +4399,9 @@ Instruction
- +

+ 'load' Instruction +

@@ -4384,8 +4458,9 @@ Instruction
- +

+ 'store' Instruction +

@@ -4445,9 +4520,9 @@ Instruction
- +
@@ -4576,8 +4651,9 @@ entry:
- +

+ Conversion Operations +

@@ -4588,9 +4664,10 @@ entry:
- + +
Syntax:
@@ -4627,9 +4704,10 @@ entry:
- + +
Syntax:
@@ -4666,9 +4744,10 @@ entry:
- + +
Syntax:
@@ -4704,9 +4783,9 @@ entry:
- +
@@ -4742,9 +4821,10 @@ entry:
- + +
Syntax:
@@ -4778,9 +4858,10 @@ entry:
- + +
Syntax:
@@ -4815,9 +4896,10 @@ entry:
- + +
Syntax:
@@ -4853,9 +4935,10 @@ entry:
- + +
Syntax:
@@ -4889,9 +4972,10 @@ entry:
- + +
Syntax:
@@ -4924,9 +5008,10 @@ entry:
- + +
Syntax:
@@ -4961,9 +5046,10 @@ entry:
- + +
Syntax:
@@ -4998,9 +5084,10 @@ entry:
- + +
Syntax:
@@ -5041,7 +5128,9 @@ entry:
- +

+ Other Operations +

@@ -5051,8 +5140,9 @@ entry:
- +

+ 'icmp' Instruction +

@@ -5153,8 +5243,9 @@ entry:
- +

+ 'fcmp' Instruction +

@@ -5273,9 +5364,9 @@ entry:
- +
@@ -5321,9 +5412,9 @@ Loop: ; Infinite loop that counts from 0 on up...
- +
@@ -5364,9 +5455,9 @@ Loop: ; Infinite loop that counts from 0 on up...
- +
@@ -5473,9 +5564,9 @@ freestanding environments and non-C-based languages.

- +
@@ -5519,7 +5610,7 @@ freestanding environments and non-C-based languages.

- +

Intrinsic Functions

@@ -5568,9 +5659,9 @@ freestanding environments and non-C-based languages.

- +
@@ -5617,9 +5708,9 @@ declare void @llvm.va_end(i8*)
- +
@@ -5648,9 +5739,9 @@ declare void @llvm.va_end(i8*)
- +
@@ -5679,9 +5770,9 @@ declare void @llvm.va_end(i8*)
- +
@@ -5710,9 +5801,9 @@ declare void @llvm.va_end(i8*)
- +
@@ -5732,9 +5823,9 @@ LLVM.

- +
@@ -5763,9 +5854,9 @@ LLVM.

- +
@@ -5795,9 +5886,9 @@ LLVM.

- +
@@ -5827,9 +5918,9 @@ LLVM.

- +
@@ -5839,9 +5930,9 @@ LLVM.

- +
@@ -5874,9 +5965,9 @@ LLVM.

- +
@@ -5908,9 +5999,9 @@ LLVM.

- +
@@ -5938,9 +6029,9 @@ LLVM.

- +
@@ -5963,9 +6054,9 @@ LLVM.

- +
@@ -5996,9 +6087,9 @@ LLVM.

- +
@@ -6027,9 +6118,9 @@ LLVM.

- +
@@ -6054,9 +6145,9 @@ LLVM.

- +
@@ -6068,9 +6159,9 @@ LLVM.

- +
@@ -6122,9 +6213,9 @@ LLVM.

- +
@@ -6178,9 +6269,9 @@ LLVM.

- +
@@ -6228,9 +6319,9 @@ LLVM.

- +
@@ -6266,9 +6357,9 @@ LLVM.

- +
@@ -6302,9 +6393,9 @@ LLVM.

- +
@@ -6336,9 +6427,9 @@ LLVM.

- +
@@ -6370,9 +6461,9 @@ LLVM.

- +
@@ -6405,9 +6496,9 @@ LLVM.

- +
@@ -6417,9 +6508,9 @@ LLVM.

- +
@@ -6452,9 +6543,9 @@ LLVM.

- +
@@ -6484,9 +6575,9 @@ LLVM.

- +
@@ -6518,9 +6609,9 @@ LLVM.

- +
@@ -6552,9 +6643,9 @@ LLVM.

- +
@@ -6563,9 +6654,11 @@ LLVM.

- +

+ + 'llvm.sadd.with.overflow.*' Intrinsics + +

@@ -6609,9 +6702,11 @@ LLVM.

- +

+ + 'llvm.uadd.with.overflow.*' Intrinsics + +

@@ -6654,9 +6749,11 @@ LLVM.

- +

+ + 'llvm.ssub.with.overflow.*' Intrinsics + +

@@ -6700,9 +6797,11 @@ LLVM.

- +

+ + 'llvm.usub.with.overflow.*' Intrinsics + +

@@ -6746,9 +6845,11 @@ LLVM.

- +

+ + 'llvm.smul.with.overflow.*' Intrinsics + +

@@ -6793,9 +6894,11 @@ LLVM.

- +

+ + 'llvm.umul.with.overflow.*' Intrinsics + +

@@ -6839,9 +6942,9 @@ LLVM.

- +
@@ -6860,9 +6963,11 @@ LLVM.

- +

+ + 'llvm.convert.to.fp16' Intrinsic + +

@@ -6895,9 +7000,11 @@ LLVM.

- +

+ + 'llvm.convert.from.fp16' Intrinsic + +

@@ -6930,9 +7037,9 @@ LLVM.

- +
@@ -6944,9 +7051,9 @@ LLVM.

- +
@@ -6958,9 +7065,9 @@ LLVM.

- +
@@ -6991,9 +7098,11 @@ LLVM.

- +

+ + 'llvm.init.trampoline' Intrinsic + +

@@ -7033,9 +7142,9 @@ LLVM.

- +
@@ -7060,9 +7169,10 @@ LLVM.

- + +
Syntax:
@@ -7131,9 +7241,9 @@ LLVM.

- +
@@ -7191,9 +7301,10 @@ LLVM.

- + +
Syntax:
@@ -7247,10 +7358,9 @@ LLVM.

- +
@@ -7297,10 +7407,9 @@ LLVM.

- +
@@ -7349,12 +7458,23 @@ LLVM.

- +

+ + 'llvm.atomic.load.and.*' Intrinsic + +
+ + 'llvm.atomic.load.nand.*' Intrinsic + +
+ + 'llvm.atomic.load.or.*' Intrinsic + +
+ + 'llvm.atomic.load.xor.*' Intrinsic + +

@@ -7429,12 +7549,23 @@ LLVM.

- +

+ + 'llvm.atomic.load.max.*' Intrinsic + +
+ + 'llvm.atomic.load.min.*' Intrinsic + +
+ + 'llvm.atomic.load.umax.*' Intrinsic + +
+ + 'llvm.atomic.load.umin.*' Intrinsic + +

@@ -7509,9 +7640,9 @@ LLVM.

- +
@@ -7521,9 +7652,9 @@ LLVM.

- +
@@ -7551,9 +7682,9 @@ LLVM.

- +
@@ -7580,9 +7711,9 @@ LLVM.

- +
@@ -7608,9 +7739,9 @@ LLVM.

- +
@@ -7635,9 +7766,9 @@ LLVM.

- +
@@ -7647,9 +7778,9 @@ LLVM.

- +
@@ -7675,9 +7806,9 @@ LLVM.

- +
@@ -7711,9 +7842,9 @@ LLVM.

- +
@@ -7736,9 +7867,9 @@ LLVM.

- +
@@ -7770,9 +7901,9 @@ LLVM.

- +
diff --git a/docs/Lexicon.html b/docs/Lexicon.html index 682bd080628..458da8013ed 100644 --- a/docs/Lexicon.html +++ b/docs/Lexicon.html @@ -9,10 +9,10 @@ content="A glossary of terms used with the LLVM project."> -
The LLVM Lexicon
+

The LLVM Lexicon

NOTE: This document is a work in progress!

-
Table Of Contents
+

Table Of Contents

@@ -83,10 +83,10 @@ -
Definitions
+

Definitions

- +

- A -

ADCE
@@ -94,7 +94,7 @@
- +

- B -

BURS
@@ -104,7 +104,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- C -

CSE
@@ -116,7 +116,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- D -

DAG
@@ -136,7 +136,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- G -

GC
@@ -145,7 +145,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- H -

Heap
@@ -154,7 +154,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- I -

IPA
@@ -169,7 +169,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- L -

LCSSA
@@ -183,7 +183,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- M -

MC
@@ -191,7 +191,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- O -

Object Pointer
@@ -202,7 +202,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- P -

PRE
@@ -211,7 +211,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- R -

RAUW
An abbreviation for Replace @@ -234,7 +234,7 @@ href="http://www.program-transformation.org/Transform/BURG">BURG tool.
- +

- S -

Safe Point
diff --git a/docs/LinkTimeOptimization.html b/docs/LinkTimeOptimization.html index 05011e63d24..720a5e460ab 100644 --- a/docs/LinkTimeOptimization.html +++ b/docs/LinkTimeOptimization.html @@ -6,9 +6,9 @@ -
+

LLVM Link Time Optimization: Design and Implementation -

+
- +
@@ -50,9 +50,9 @@ and design between the LTO optimizer and the linker.

- +
@@ -72,9 +72,9 @@ conservative escape analysis.
- +

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

- +
@@ -176,9 +176,9 @@ $ llvm-gcc a.o main.o -o main # <-- standard link command without any modific
- +

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

- +

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

- +

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

- +

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

- +

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

-
+

libLTO -

+

libLTO 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

- +
@@ -325,9 +325,9 @@ lto_module_get_symbol_attribute(lto_module_t, unsigned int)
- +
diff --git a/docs/MakefileGuide.html b/docs/MakefileGuide.html index f50e335b151..a85314ab282 100644 --- a/docs/MakefileGuide.html +++ b/docs/MakefileGuide.html @@ -7,7 +7,7 @@ -
LLVM Makefile Guide
+

LLVM Makefile Guide

  1. Introduction
  2. @@ -77,7 +77,7 @@
- +

Introduction

@@ -99,7 +99,7 @@
- +

General Concepts

@@ -111,7 +111,7 @@
- +

Projects

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 @@

- +

Variable Values

To use the makefile system, you simply create a file named Makefile in your directory and declare values for certain variables. @@ -139,7 +139,7 @@

- +

Including Makefiles

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 @@

- +

Makefile

Each directory to participate in the build needs to have a file named Makefile. This is the file first read by make. It has three @@ -163,8 +163,7 @@

- +

Makefile.common

Every project must have a Makefile.common file at its top source directory. This file serves three purposes:

@@ -182,8 +181,7 @@
- +

Makefile.config

Every project must have a Makefile.config at the top of its build directory. This file is generated by the @@ -196,7 +194,7 @@

- +

Makefile.rules

This file, located at $(LLVM_SRC_ROOT)/Makefile.rules is the heart of the LLVM Makefile System. It provides all the logic, dependencies, and @@ -206,7 +204,7 @@

- +

Comments

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 @@

- +

Tutorial

This section provides some examples of the different kinds of modules you @@ -226,7 +224,7 @@

- +

Libraries

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 @@

- +

Bitcode Modules

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 @@

- +

In some situations, you need to create a loadable module. Loadable modules can be loaded into programs like opt or llc to specify @@ -312,7 +310,7 @@

- +

Tools

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 @@

- +

JIT Tools

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 @@

- +

Targets Supported

@@ -429,7 +427,7 @@
- +

all (default)

When you invoke make with no arguments, you are implicitly instructing it to seek the "all" target (goal). This target is used for @@ -440,14 +438,14 @@

- +

all-local

This target is the same as all but it operates only on the current directory instead of recursively.

- +

check

This target can be invoked from anywhere within a project's directories but always invokes the check-local target @@ -464,7 +462,7 @@

- +

check-local

This target should be implemented by the Makefile in the project's test directory. It is invoked by the check target elsewhere. @@ -475,7 +473,7 @@

- +

clean

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 @@

- +

clean-local

This target does the same thing as clean but only for the current (local) directory.

- +

dist

This target builds a distribution tarball. It first builds the entire project using the all target and then tars up the necessary files and @@ -500,7 +498,7 @@

- +

dist-check

This target does the same thing as the dist target but also checks the distribution tarball. The check is made by unpacking the tarball to a new @@ -512,7 +510,7 @@

- +

dist-clean

This is a special form of the clean clean target. It performs a normal clean but also removes things pertaining to building the @@ -520,7 +518,7 @@

- +

install

This target finalizes shared objects and executables and copies all libraries, headers, executables and documentation to the directory given @@ -538,7 +536,7 @@

- +

preconditions

This utility target checks to see if the Makefile in the object directory is older than the Makefile in the source directory and @@ -549,14 +547,14 @@

- +

printvars

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.

- +

reconfigure

This utility target will force a reconfigure of LLVM or your project. It simply runs $(PROJ_OBJ_ROOT)/config.status --recheck to rerun the @@ -566,7 +564,7 @@

- +

spotless

This utility target, only available when $(PROJ_OBJ_ROOT) is not the same as $(PROJ_SRC_ROOT), will completely clean the @@ -578,7 +576,7 @@

- +

tags

This target will generate a TAGS file in the top-level source directory. It is meant for use with emacs, XEmacs, or ViM. The TAGS file @@ -587,7 +585,7 @@

- +

uninstall

This target is the opposite of the install target. It removes the header, library and executable files from the installation directories. Note @@ -596,7 +594,7 @@

- +

Variables

Variables are used to tell the LLVM Makefile System what to do and to @@ -609,7 +607,7 @@

- +

Control Variables

Variables listed in the table below should be set before the inclusion of $(LEVEL)/Makefile.common. @@ -762,7 +760,7 @@

- +

Override Variables

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 @@

- +

Readable Variables

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 @@

- +

Internal Variables

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 3376bbcdb4a..86d6ca1ef03 100644 --- a/docs/Packaging.html +++ b/docs/Packaging.html @@ -7,7 +7,7 @@ -

Advice on Packaging LLVM
+

Advice on Packaging LLVM

  1. Overview
  2. Compile Flags
  3. @@ -17,7 +17,7 @@
- +

Overview

@@ -34,7 +34,7 @@ developed against each.
- +

Compile Flags

@@ -65,7 +65,7 @@ versions of LLVM in parallel. The following configure flags are relevant:
- +

C++ Features

@@ -78,7 +78,7 @@ versions of LLVM in parallel. The following configure flags are relevant:
- +

Shared Library

@@ -89,7 +89,7 @@ against it. This saves lots of binary size at the cost of some startup time.
- +

Dependencies

diff --git a/docs/Passes.html b/docs/Passes.html index 9a5ad91bfef..8b993379756 100644 --- a/docs/Passes.html +++ b/docs/Passes.html @@ -1,4 +1,4 @@ - @@ -40,7 +40,7 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if ! --> -

LLVM's Analysis and Transform Passes
+

LLVM's Analysis and Transform Passes

  1. Introduction
  2. @@ -55,7 +55,7 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

    \n" if !

- +

Introduction

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 "

\n" if !

- +

Analysis Passes

This section describes the LLVM Analysis Passes.

- +

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 "

\n" if !

- +

This is the default implementation of the Alias Analysis interface @@ -236,17 +236,17 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

Yet to be written.

- +

A pass which can be used to count how many alias queries @@ -255,9 +255,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This simple pass checks alias analysis users to ensure that if they @@ -272,9 +272,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass is a simple dominator construction algorithm for finding forward @@ -283,9 +283,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass is a simple dominator construction algorithm for finding forward @@ -294,9 +294,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the call graph into a @@ -306,9 +306,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the control flow graph @@ -318,9 +318,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the control flow graph @@ -331,9 +331,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the dominator tree @@ -343,9 +343,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the dominator tree @@ -356,9 +356,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the post dominator tree @@ -368,9 +368,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the post dominator tree @@ -381,9 +381,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This simple pass provides alias and mod/ref information for global values @@ -394,9 +394,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass collects the count of all instructions and reports them @@ -404,9 +404,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This analysis calculates and represents the interval partition of a function, @@ -420,43 +420,43 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

Bookkeeping for "interesting" users of expressions computed from induction variables.

- +

Interface for lazy computation of value constraint information.

- +

Loop dependence analysis framework, which is used to detect dependences in memory accesses in loops.

- +

LibCall Alias Analysis.

- +

This pass statically checks for common and easily-identified constructs which produce undefined or likely unintended behavior in LLVM IR.

@@ -485,9 +485,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- +

An analysis that determines, for a given memory operation, what preceding @@ -511,9 +511,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- +

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 "

\n" if !

- +

The default "no profile" implementation of the abstract @@ -547,9 +547,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass is a simple post-dominator construction algorithm for finding @@ -558,9 +558,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass is a simple post-dominator construction algorithm for finding @@ -569,17 +569,17 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

Yet to be written.

- +

This pass, only available in opt, prints the call graph to @@ -588,9 +588,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the SCCs of the call @@ -599,9 +599,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass, only available in opt, prints the SCCs of each @@ -610,9 +610,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

Pass that prints instructions, and associated debug info:

    @@ -624,17 +624,17 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

    \n" if !

- +

Dominator Info Printer.

- +

This pass, only available in opt, prints out call sites to @@ -645,9 +645,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

The PrintFunctionPass class is designed to be pipelined with @@ -657,9 +657,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass simply prints out the entire module when it is executed. @@ -667,9 +667,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- +

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 "

\n" if !

- +

A concrete implementation of profiling information that loads the information @@ -699,15 +699,15 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

Pass that checks profiling information for plausibility.

- +

The RegionInfo pass detects single entry single exit regions in a @@ -718,9 +718,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

The ScalarEvolution analysis can be used to analyze and @@ -737,9 +737,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

Simple alias analysis implemented in terms of ScalarEvolution queries. @@ -753,24 +753,24 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

Provides other passes access to information on how the size and alignment required by the the target ABI for various data types.

- +

Transform Passes

This section describes the LLVM Transform Passes.

- +

ADCE aggressively tries to eliminate code. This pass is similar to DCE but it assumes that values are dead until proven @@ -779,18 +779,18 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

A custom inliner that handles only functions that are marked as "always inline".

- +

This pass promotes "by reference" arguments to be "by value" arguments. In @@ -819,9 +819,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- +

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 "

\n" if !

- +
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 "

\n" if !

- +

Merges duplicate global constants together into a single constant that is @@ -867,9 +867,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- + - +

This pass deletes dead arguments from internal functions. Dead argument @@ -913,9 +913,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- +

Dead instruction elimination performs a single pass over the function, @@ -936,9 +936,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

A trivial dead store elimination that only considers basic-block local @@ -947,9 +947,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- +

This transform is designed to eliminate unreachable internal globals from the @@ -976,9 +976,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass transforms simple global variables that never have their address @@ -988,9 +988,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass performs global value numbering to eliminate fully and partially @@ -999,9 +999,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This transformation analyzes and transforms the induction variables (and @@ -1050,9 +1050,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

Bottom-up inlining of functions into callees. @@ -1060,9 +1060,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

This pass instruments the specified program with counters for edge profiling. @@ -1078,9 +1078,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- +

Combine instructions to form fewer, simple @@ -1143,9 +1143,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- +

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 "

\n" if !

- +

This pass implements an extremely simple interprocedural constant @@ -1169,9 +1169,9 @@ perl -e '$/ = undef; for (split(/\n/, <>)) { s:^ *///? ?::; print "

\n" if !

- + - +

Jump threading tries to find distinct threads of control flow running through @@ -1209,9 +1209,9 @@ if (X < 3) {

- +

This pass transforms loops by placing phi nodes at the end of the loops for @@ -1238,9 +1238,9 @@ if (X < 3) {

- +

This pass performs loop invariant code motion, attempting to remove as much @@ -1275,9 +1275,9 @@ if (X < 3) {

- +

This file implements the Dead Loop Deletion Pass. This pass is responsible @@ -1288,9 +1288,9 @@ if (X < 3) {

- +

A pass wrapper around the ExtractLoop() scalar transformation to @@ -1301,9 +1301,9 @@ if (X < 3) {

- +

Similar to Extract loops into new functions, @@ -1313,9 +1313,9 @@ if (X < 3) {

- +

This pass performs a strength reduction on array references inside loops that @@ -1327,17 +1327,17 @@ if (X < 3) {

- +

A simple loop rotation transformation.

- +

This pass performs several transformations to transform natural loops into a @@ -1376,9 +1376,9 @@ if (X < 3) {

- +

This pass implements a simple loop unroller. It works best when loops have @@ -1388,9 +1388,9 @@ if (X < 3) {

- +

This pass transforms loops that contain branches on loop-invariant conditions @@ -1418,9 +1418,9 @@ if (X < 3) {

- +

This pass lowers atomic intrinsics to non-atomic form for use in a known @@ -1436,9 +1436,9 @@ if (X < 3) {

- +

This transformation is designed for use by code generators which do not yet @@ -1477,9 +1477,9 @@ if (X < 3) {

- +

Lowers setjmp and longjmp to use the LLVM invoke and unwind @@ -1506,9 +1506,9 @@ if (X < 3) {

- +

Rewrites switch instructions with a sequence of branches, which @@ -1518,9 +1518,9 @@ if (X < 3) {

- +

This file promotes memory references to be register references. It promotes @@ -1534,9 +1534,9 @@ if (X < 3) {

- +

This pass performs various transformations related to eliminating memcpy @@ -1545,9 +1545,9 @@ if (X < 3) {

- +

This pass looks for equivalent functions that are mergable and folds them. @@ -1566,9 +1566,9 @@ if (X < 3) {

- +

Ensure that functions have at most one ret instruction in them. @@ -1577,9 +1577,9 @@ if (X < 3) {

- +

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) {

- +

This file implements a simple interprocedural pass which walks the call-graph, @@ -1600,9 +1600,9 @@ if (X < 3) {

- +

This pass reassociates commutative expressions in an order that is designed @@ -1623,9 +1623,9 @@ if (X < 3) {

- +

This file demotes all registers to memory references. It is intented to be @@ -1640,9 +1640,9 @@ if (X < 3) {

- +

The well-known scalar replacement of aggregates transformation. This @@ -1662,9 +1662,9 @@ if (X < 3) {

- +

Sparse conditional constant propagation and merging, which can be summarized @@ -1685,9 +1685,9 @@ if (X < 3) {

- +

Applies a variety of small optimizations for calls to specific well-known @@ -1698,9 +1698,9 @@ if (X < 3) {

- +

Performs dead code elimination and basic block merging. Specifically: @@ -1717,9 +1717,9 @@ if (X < 3) {

- +

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) {

- +

This pass finds functions that return a struct (using a pointer to the struct @@ -1750,9 +1750,9 @@ if (X < 3) {

- +

performs code stripping. this transformation can delete: @@ -1772,9 +1772,9 @@ if (X < 3) {

- +

performs code stripping. this transformation can delete: @@ -1794,9 +1794,9 @@ if (X < 3) {

- +

This pass loops over all of the functions in the input module, looking for @@ -1807,9 +1807,9 @@ if (X < 3) {

- +

This pass implements code stripping. Specifically, it can delete:

    @@ -1825,9 +1825,9 @@ if (X < 3) {
- +

This pass implements code stripping. Specifically, it can delete:

    @@ -1843,9 +1843,9 @@ if (X < 3) {
- +

This file transforms calls of the current function (self recursion) followed @@ -1875,9 +1875,9 @@ if (X < 3) {

- +

This pass performs a limited form of tail duplication, intended to simplify @@ -1889,15 +1889,15 @@ if (X < 3) {

- +

Utility Passes

This section describes the LLVM Utility Passes.

- +

Same as dead argument elimination, but deletes arguments to functions which @@ -1906,9 +1906,9 @@ if (X < 3) {

- +

This pass is used by bugpoint to extract all blocks from the module into their @@ -1916,9 +1916,9 @@ if (X < 3) {

- +

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) {

- +

Ensures that the module is in the form required by the

- +

Verifies an LLVM IR code. This is useful to run after an optimization which is @@ -1995,9 +1995,9 @@ if (X < 3) {

- +

Displays the control flow graph using the GraphViz tool. @@ -2005,9 +2005,9 @@ if (X < 3) {

- +

Displays the control flow graph using the GraphViz tool, but omitting function @@ -2016,9 +2016,9 @@ if (X < 3) {

- +

Displays the dominator tree using the GraphViz tool. @@ -2026,9 +2026,9 @@ if (X < 3) {

- +

Displays the dominator tree using the GraphViz tool, but omitting function @@ -2037,9 +2037,9 @@ if (X < 3) {

- +

Displays the post dominator tree using the GraphViz tool. @@ -2047,9 +2047,9 @@ if (X < 3) {

- +

Displays the post dominator tree using the GraphViz tool, but omitting diff --git a/docs/ProgrammersManual.html b/docs/ProgrammersManual.html index e3f2a7a9095..b29c5826124 100644 --- a/docs/ProgrammersManual.html +++ b/docs/ProgrammersManual.html @@ -8,9 +8,9 @@ -

+

LLVM Programmer's Manual -

+
  1. Introduction
  2. @@ -210,9 +210,9 @@ with another Value
- +
@@ -242,9 +242,9 @@ href="/doxygen/InstVisitor_8h-source.html">InstVisitor template.

- +
@@ -255,9 +255,9 @@ in the LLVM source-base, but that isn't specific to any particular API.

- +
@@ -305,9 +305,9 @@ to write maintainable code more than where to put your curly braces.

- +
@@ -319,9 +319,9 @@ static and shared libraries across platforms
- +
@@ -332,10 +332,10 @@ know about when writing transformations.

- +
@@ -442,10 +442,10 @@ are lots of examples in the LLVM source base.

- +
@@ -464,9 +464,9 @@ passing strings efficiently.

- +
@@ -504,9 +504,9 @@ small and pervasive enough in LLVM that it should always be passed by value.

- +
@@ -541,9 +541,9 @@ accept concatenated strings.

- +
@@ -594,10 +594,10 @@ program hasn't been started yet, you can always just run it with
- +
@@ -668,10 +668,10 @@ DEBUG_WITH_TYPE("", errs() << "No debug type (2)\n");
- +
@@ -768,9 +768,9 @@ maintainable and useful.

- +
@@ -817,9 +817,9 @@ attributes, then you can call DAG.clearGraphAttrs().

- +
@@ -881,9 +881,9 @@ cost of adding the elements to the container.

- +
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.
- +

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. -

+

Fixed size arrays are very simple and very fast. They are good if you know @@ -917,9 +917,9 @@ you have.

- +

Heap allocated arrays (new[] + delete[]) are also simple. They are good if @@ -933,9 +933,9 @@ construct those elements actually used).

- +

SmallVector<Type, N> is a simple class that looks and smells @@ -962,9 +962,9 @@ SmallVectors are most useful when on the stack.

- +

@@ -1004,9 +1004,9 @@ the loop.

-
+

<deque> -

+

std::deque is, in some senses, a generalized version of std::vector. Like @@ -1020,9 +1020,9 @@ something cheaper.

-
+

<list> -

+

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.

- +

ilist<T> implements an 'intrusive' doubly-linked list. It is @@ -1068,9 +1068,9 @@ Related classes of interest are explained in the following subsections:

- +

ilist_traits<T> is ilist<T>'s customization @@ -1079,9 +1079,9 @@ publicly derive from this traits class.

-
+

iplist -

+

iplist<T> is ilist<T>'s base and as such @@ -1093,9 +1093,9 @@ used for a wide variety of customizations.

- +

ilist_node<T> implements a the forward and backward links @@ -1108,9 +1108,9 @@ in the default manner.

- +

ilists 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.

- +

Other STL containers are available, such as std::string.

@@ -1161,9 +1161,9 @@ underlying container but don't affect the cost of the container itself.

- +
@@ -1175,9 +1175,9 @@ this, providing various trade-offs.

- +
@@ -1197,9 +1197,9 @@ efficiently queried with a standard binary or radix search.

- +
@@ -1220,9 +1220,9 @@ and erasing, but does not support iteration.

- +
@@ -1240,9 +1240,9 @@ visited in sorted order.

- +
@@ -1259,9 +1259,9 @@ href="#dss_densemap">DenseMap has.
- +
@@ -1296,9 +1296,9 @@ elements.
-
+

<set> -

+
@@ -1321,9 +1321,9 @@ std::set is almost never a good choice.

- +

LLVM's SetVector<Type> is an adapter class that combines your choice of @@ -1361,9 +1361,9 @@ heap traffic.

- +
@@ -1381,9 +1381,9 @@ factors, and produces a lot of malloc traffic. It should be avoided.

- +
@@ -1402,9 +1402,9 @@ better.

- +
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. :)
- +
@@ -1429,9 +1429,9 @@ vectors for sets.
- +
@@ -1463,9 +1463,9 @@ copies a string if a value is inserted into the table.

- +

@@ -1483,9 +1483,9 @@ virtual register ID).

- +
@@ -1509,9 +1509,9 @@ inserted into the map) that it needs internally.

- +
@@ -1526,9 +1526,9 @@ a Config parameter to the ValueMap template.

- +
@@ -1543,9 +1543,9 @@ as STL iterators. The heavyweight iterators allow a smaller data structure.

-
+

<map> -

+
@@ -1563,9 +1563,9 @@ another element takes place).

- +
@@ -1583,9 +1583,9 @@ it can be edited again.

- +
@@ -1602,9 +1602,9 @@ always better.

- +
@@ -1616,9 +1616,9 @@ xref to #string_apis.
- +

Unlike the other containers, there are only two bit storage containers, and @@ -1633,9 +1633,9 @@ please don't use it.

- +

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).

- +

The SmallBitVector container provides the same interface as BitVector, but @@ -1667,9 +1667,9 @@ and its operator[] does not provide an assignable lvalue.

- +

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

- +
@@ -1700,9 +1700,9 @@ and descriptions of the main classes that you should know about.

- +
@@ -1724,11 +1724,11 @@ structures are traversed in very similar ways.

- +
@@ -1759,11 +1759,11 @@ exactly equivalent to (*i).size() just like you'd expect.

- +
@@ -1790,11 +1790,11 @@ basic block itself: errs() << *blk << "\n";.

- +
@@ -1836,10 +1836,10 @@ for (inst_iterator I = inst_begin(F), E = inst_end(F); I != E; ++I)
- +
@@ -1913,10 +1913,10 @@ and operator* changed to return a pointer instead of a reference.

- +
@@ -1975,9 +1975,9 @@ class OurFunctionPass : public FunctionPass {
- +
@@ -2002,9 +2002,9 @@ If you look at its definition, it has only a single pointer member.

- +
@@ -2063,10 +2063,10 @@ calling use/op_begin() on const Value*s or
- +
@@ -2093,9 +2093,9 @@ succ_iterator/succ_begin/succ_end.

- +
@@ -2108,10 +2108,10 @@ and gives example code.

- +
@@ -2249,9 +2249,9 @@ Instruction* newInst = new Instruction(..., pi);
- +
@@ -2273,10 +2273,10 @@ block but not delete it, you can use the removeFromParent() method.

- +
@@ -2339,9 +2339,9 @@ ReplaceInstWithValue, ReplaceInstWithInst -->
- +
@@ -2361,9 +2361,9 @@ GV->eraseFromParent();
- +
@@ -2401,9 +2401,9 @@ comment for more details.

- +
@@ -2432,9 +2432,9 @@ support.
- +
@@ -2469,9 +2469,9 @@ result in concurrent LLVM API calls.
- +

@@ -2489,9 +2489,9 @@ destructor.

- +

@@ -2518,9 +2518,9 @@ and only if you know what you're doing!

- +

@@ -2562,9 +2562,9 @@ isolation is not a concern.

- +

@@ -2590,9 +2590,9 @@ access, but we suggest using only the eager JIT in threaded programs.

- +
@@ -2604,9 +2604,9 @@ LLVM system, and only need to be accessed in unusual circumstances.
- +
@@ -2640,9 +2640,9 @@ float }").
- +
@@ -2696,9 +2696,9 @@ href="#PATypeHolder">PATypeHolder class.
- +

@@ -2726,9 +2726,9 @@ complex datastructures.

- +

@@ -2748,9 +2748,9 @@ Type is maintained by PATypeHolder objects.

- +
@@ -2768,10 +2768,10 @@ objects) can never be refined. - +

The @@ -2804,9 +2804,9 @@ insert entries into the symbol table.

- +

The @@ -2817,9 +2817,11 @@ Use helper class is employed to do the bookkeeping and to facilitate -

+

+ + Interaction and relationship between User and Use objects + +

@@ -2878,9 +2880,9 @@ enforce the following memory layouts:

is stored in each Use object in the member Use::Prev)
- +

@@ -2919,9 +2921,9 @@ stops, so that the worst case is 20 memory accesses when there are 1000 Use objects associated with a User.

- +

@@ -3009,9 +3011,9 @@ OK, passed 500 tests. -

+

To maintain the invariant that the 2 LSBits of each Use** in Use @@ -3028,9 +3030,9 @@ the LSBit set. (Portability is relying on the fact that all known compilers plac

- +
@@ -3045,9 +3047,9 @@ the lib/VMCore directory.

- +
@@ -3067,9 +3069,9 @@ the lib/VMCore directory.

- +
@@ -3089,9 +3091,9 @@ the lib/VMCore directory.

- +
IntegerType
@@ -3157,9 +3159,9 @@ the lib/VMCore directory.

- +
@@ -3179,9 +3181,9 @@ helpful member functions that try to make common operations easy.

- +
@@ -3284,9 +3286,9 @@ provide a name for it (probably based on the name of the translation unit).

- +
@@ -3342,9 +3344,9 @@ simplifies the representation and makes it easier to manipulate.

- +
@@ -3394,9 +3396,9 @@ Inst->replaceAllUsesWith(ConstVal);
- +
@@ -3420,9 +3422,9 @@ information in LLVM.

- +
@@ -3448,9 +3450,9 @@ the operands of a User.

- +
@@ -3486,10 +3488,11 @@ this file confuses doxygen, so these enum values don't show up correctly in the
- +

+ + Important Subclasses of the Instruction class + +

  • BinaryOperator @@ -3509,10 +3512,11 @@ this file confuses doxygen, so these enum values don't show up correctly in the
- +

+ + Important Public Members of the Instruction class + +

@@ -3535,9 +3539,9 @@ and it has no name

- +
@@ -3550,7 +3554,7 @@ a subclass, which represents the address of a global variable or function.
-
Important Subclasses of Constant
+

Important Subclasses of Constant

- +
@@ -3724,10 +3729,11 @@ is its address (after linking) which is guaranteed to be constant.

- +

+ + Important Public Members of the Function class + +

@@ -3808,9 +3814,9 @@ iterator
- +
@@ -3837,10 +3843,11 @@ never change at runtime).

- +

+ + Important Public Members of the GlobalVariable class + +

@@ -3882,9 +3889,9 @@ never change at runtime).

- +
@@ -3914,10 +3921,11 @@ like branches and can go in the switch tables. BasicBlocks have type
- +

+ + Important Public Members of the BasicBlock class + +

@@ -68,7 +68,7 @@ height="369"> - +

Introduction

@@ -83,9 +83,9 @@ height="369">
- +
@@ -133,9 +133,9 @@ height="369">
- +
@@ -157,9 +157,9 @@ height="369">
- +
@@ -227,9 +227,9 @@ height="369">
- +
@@ -268,9 +268,9 @@ height="369">
- +
@@ -315,9 +315,9 @@ height="369">
- +
@@ -351,9 +351,9 @@ height="369">
- +
@@ -380,9 +380,9 @@ height="369">
- +
@@ -413,9 +413,9 @@ global variables are collected by named metadata !llvm.dbg.gv.

- +
@@ -456,9 +456,9 @@ global variables are collected by named metadata !llvm.dbg.gv.

- +
@@ -482,9 +482,9 @@ global variables are collected by named metadata !llvm.dbg.gv.

- +
@@ -534,9 +534,9 @@ DW_ATE_unsigned_char = 8
- +
@@ -606,9 +606,9 @@ DW_TAG_restrict_type = 55
- +
@@ -693,9 +693,9 @@ DW_TAG_inheritance = 28
- +
@@ -719,9 +719,9 @@ DW_TAG_inheritance = 28
- +
@@ -743,9 +743,9 @@ DW_TAG_inheritance = 28
- +
@@ -787,9 +787,9 @@ DW_TAG_return_variable = 258
- +
@@ -799,9 +799,9 @@ DW_TAG_return_variable = 258
- +
@@ -814,9 +814,9 @@ DW_TAG_return_variable = 258
 
- +
@@ -831,9 +831,9 @@ DW_TAG_return_variable = 258
 
- +

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

- +
@@ -1023,9 +1023,9 @@ call void @llvm.dbg.declare(metadata, metadata !12), !dbg !14
- +
@@ -1101,9 +1101,9 @@ using Instruction::getMetadata() and
- +
@@ -1171,9 +1171,9 @@ int MyGlobal = 100;
- +
@@ -1228,9 +1228,9 @@ define i32 @main(i32 %argc, i8** %argv) {
- +
@@ -1239,9 +1239,9 @@ define i32 @main(i32 %argc, i8** %argv) {
-
+

bool -

+
@@ -1265,9 +1265,9 @@ define i32 @main(i32 %argc, i8** %argv) {
-
+

char -

+
@@ -1291,9 +1291,9 @@ define i32 @main(i32 %argc, i8** %argv) {
- +
@@ -1317,9 +1317,9 @@ define i32 @main(i32 %argc, i8** %argv) {
-
+

short -

+
@@ -1343,9 +1343,9 @@ define i32 @main(i32 %argc, i8** %argv) {
- +
@@ -1369,9 +1369,9 @@ define i32 @main(i32 %argc, i8** %argv) {
-
+

int -

+
@@ -1394,9 +1394,9 @@ define i32 @main(i32 %argc, i8** %argv) {
- +
@@ -1420,9 +1420,9 @@ define i32 @main(i32 %argc, i8** %argv) {
- +
@@ -1446,9 +1446,9 @@ define i32 @main(i32 %argc, i8** %argv) {
- +
@@ -1472,9 +1472,9 @@ define i32 @main(i32 %argc, i8** %argv) {
-
+

float -

+
@@ -1498,9 +1498,9 @@ define i32 @main(i32 %argc, i8** %argv) {
-
+

double -

+
@@ -1524,9 +1524,9 @@ define i32 @main(i32 %argc, i8** %argv) {
- +
@@ -1609,9 +1609,9 @@ typedef const int *IntPtr;
- +
@@ -1722,9 +1722,9 @@ struct Color {
- +
diff --git a/docs/SystemLibrary.html b/docs/SystemLibrary.html index 35a94b7e7a9..db60a471381 100644 --- a/docs/SystemLibrary.html +++ b/docs/SystemLibrary.html @@ -7,7 +7,7 @@ -
System Library
+

System Library

@@ -152,7 +152,7 @@ -
Using llvm-config
+

Using llvm-config

The llvm-config 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 @@

- +

Linkage Rules Of Thumb

This section contains various "rules of thumb" about what files you should link into your programs.

- +

+ Always Link LLVMCore, LLVMSupport, and LLVMSystem +

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.

- +

+ Never link both archive and re-linked library +

There is never any point to linking both the re-linked (.o) and the archive (.a) versions of a library. Since the re-linked version diff --git a/docs/WritingAnLLVMBackend.html b/docs/WritingAnLLVMBackend.html index 4798cdfc350..c8dcb8a7d8d 100644 --- a/docs/WritingAnLLVMBackend.html +++ b/docs/WritingAnLLVMBackend.html @@ -9,9 +9,9 @@ -

+

Writing an LLVM Compiler Backend -

+
  1. Introduction @@ -61,9 +61,9 @@
- +
@@ -93,9 +93,9 @@ conventions.
- +
@@ -106,9 +106,9 @@ generate code for a specific hardware or software target.
- +
@@ -155,9 +155,9 @@ machine dependent features.
- +
@@ -220,9 +220,9 @@ that the class will need and which components will need to be subclassed.
- +
@@ -282,9 +282,9 @@ regenerate configure by running ./autoconf/AutoRegen.sh.
- +
@@ -424,9 +424,9 @@ SparcTargetMachine::SparcTargetMachine(const Module &M, const std::string &a
- +
@@ -480,9 +480,9 @@ For more information, see
- +
@@ -517,9 +517,9 @@ implementation of XXXRegisterInfo requires hand-coding.
- +
@@ -700,9 +700,9 @@ fields of a register's TargetRegisterDesc.
- +
@@ -894,10 +894,10 @@ namespace SP { // Register class instances
- +
@@ -934,9 +934,9 @@ implementation in SparcRegisterInfo.cpp:
- +
@@ -1191,9 +1191,9 @@ correspond to the values in SparcInstrInfo.td. I.e.,
- +
@@ -1283,10 +1283,10 @@ the rd, rs1, and rs2 fields respectively.
- +
@@ -1327,9 +1327,9 @@ implementation in SparcInstrInfo.cpp:
- +

@@ -1486,9 +1486,9 @@ branch.

- +
@@ -1645,9 +1645,9 @@ SDNode *Select_ISD_STORE(const SDValue &N) {
- +
@@ -1719,9 +1719,9 @@ contains examples of all four LegalAction values.
-
+

Promote -

+
@@ -1742,9 +1742,9 @@ setLoadExtAction(ISD::SEXTLOAD, MVT::i1, Promote);
-
+

Expand -

+
@@ -1767,9 +1767,9 @@ setOperationAction(ISD::FCOS, MVT::f32, Expand);
-
+

Custom -

+
@@ -1833,9 +1833,9 @@ static SDValue LowerFP_TO_SINT(SDValue Op, SelectionDAG &DAG) {
-
+

Legal -

+
@@ -1866,9 +1866,9 @@ if (TM.getSubtarget<SparcSubtarget>().isV9())
- +
@@ -2016,9 +2016,9 @@ def RetCC_X86_32 : CallingConv<[
- +
@@ -2171,9 +2171,9 @@ output.
- +
@@ -2289,9 +2289,9 @@ XXXSubtarget::XXXSubtarget(const Module &M, const std::string &FS) {
- +
@@ -2336,9 +2336,9 @@ that write data (in bytes, words, strings, etc.) to the output stream.
- +
@@ -2478,9 +2478,9 @@ enum RelocationType {
- +
diff --git a/docs/WritingAnLLVMPass.html b/docs/WritingAnLLVMPass.html index 7e152452740..33161793775 100644 --- a/docs/WritingAnLLVMPass.html +++ b/docs/WritingAnLLVMPass.html @@ -8,9 +8,9 @@ -
+

Writing an LLVM Pass -

+
  1. Introduction - What is a pass?
  2. @@ -121,9 +121,9 @@
- +
@@ -156,9 +156,9 @@ more advanced features are discussed.

- +
@@ -172,9 +172,9 @@ source tree in the lib/Transforms/Hello directory.

- +
@@ -220,9 +220,9 @@ the pass itself.

- +
@@ -356,9 +356,9 @@ them) to be useful.

- +
@@ -447,9 +447,9 @@ about some more details of how they work and how to use them.

- +
@@ -470,9 +470,9 @@ slow.

- +
@@ -493,9 +493,9 @@ invalidated, and are never "run".

- +
@@ -522,9 +522,9 @@ following signature:

- +
@@ -539,9 +539,9 @@ false otherwise.

- +
@@ -587,10 +587,11 @@ false if they didn't.

- +

+ + The doInitialization(CallGraph &) method + +

@@ -609,9 +610,9 @@ fast).

- +
@@ -626,10 +627,11 @@ otherwise.

- +

+ + The doFinalization(CallGraph &) method + +

@@ -645,9 +647,9 @@ program being compiled.

- +
@@ -677,10 +679,11 @@ should return true if they modified the program, or false if they didn't.

- +

+ + The doInitialization(Module &) method + +

@@ -706,9 +709,9 @@ free functions that it needs, adding prototypes to the module if necessary.

- +
@@ -723,10 +726,11 @@ be returned if the function is modified.

- +

+ + The doFinalization(Module &) method + +

@@ -742,9 +746,9 @@ program being compiled.

- +
@@ -760,11 +764,11 @@ program, or false if they didn't.

- +

+ + The doInitialization(Loop *,LPPassManager &) method + +

@@ -783,9 +787,9 @@ information.

- +
@@ -801,9 +805,9 @@ should be used to update loop nest.

- +
@@ -819,9 +823,9 @@ program being compiled.

- +
@@ -838,11 +842,11 @@ methods should return true if they modified the program, or false if they didn n
- +

+ + The doInitialization(Region *, RGPassManager &) method + +

@@ -861,9 +865,9 @@ information.

- +
@@ -879,9 +883,9 @@ should be used to update region tree.

- +
@@ -899,9 +903,9 @@ program being compiled.

- +
@@ -928,10 +932,11 @@ href="#FunctionPass">FunctionPass's have, but also have the followi
- +

+ + The doInitialization(Function &) method + +

@@ -950,9 +955,9 @@ fast).

- +
@@ -968,10 +973,11 @@ if the basic block is modified.

- +

+ + The doFinalization(Function &) method + +

@@ -988,9 +994,9 @@ finalization.

- +
@@ -1020,10 +1026,11 @@ data)
- +

+ + The runOnMachineFunction(MachineFunction &MF) method + +

@@ -1047,9 +1054,9 @@ remember, you may not modify the LLVM Function or its contents from a
- +
@@ -1072,9 +1079,9 @@ implement the virtual print method:

- +
@@ -1097,9 +1104,9 @@ depended on.

- +
@@ -1122,9 +1129,9 @@ having any prerequisite passes, and invalidating all other passes.

- +
@@ -1142,9 +1149,12 @@ object:

- +

+ + The AnalysisUsage::addRequired<> + and AnalysisUsage::addRequiredTransitive<> methods + +

@@ -1168,9 +1178,11 @@ pass is.

- +

+ + The AnalysisUsage::addPreserved<> method + +

@@ -1203,9 +1215,11 @@ the fact that it hacks on the CFG.

- +

+ + Example implementations of getAnalysisUsage + +

@@ -1220,10 +1234,12 @@ the fact that it hacks on the CFG.
- +

+ + The getAnalysis<> and + getAnalysisIfAvailable<> methods + +

@@ -1278,9 +1294,9 @@ if it is active. For example:

- +
@@ -1305,9 +1321,9 @@ Analysis Groups.

- +
@@ -1356,9 +1372,9 @@ hypothetical example) instead.

- +
@@ -1418,9 +1434,9 @@ pass is the default implementation for the interface.

- +
@@ -1435,9 +1451,9 @@ line. See the St - +
@@ -1610,9 +1626,9 @@ anymore, and therefore do not have to compute it twice.

- +
@@ -1636,9 +1652,9 @@ class, before the next call of run* in your pass.

- +
@@ -1671,9 +1687,9 @@ register on load and unregister at unload.

- +
@@ -1736,9 +1752,9 @@ call line to llvm/Codegen/LinkAllCodegenComponents.h.

- +
@@ -1769,9 +1785,9 @@ creator.

- +
@@ -1789,9 +1805,9 @@ on that.

- +
@@ -1834,9 +1850,9 @@ or do other standard debugging stuff.

- +
@@ -1867,9 +1883,9 @@ href="mailto:sabre@nondot.org">Chris.

- +
@@ -1881,9 +1897,9 @@ where we are going:

- +
diff --git a/docs/index.html b/docs/index.html index f0bd103b343..e40877c5fbb 100644 --- a/docs/index.html +++ b/docs/index.html @@ -7,7 +7,7 @@ -
Documentation for the LLVM System at SVN head
+

Documentation for the LLVM System at SVN head

If you are using a released version of LLVM, see the download page to find @@ -39,7 +39,7 @@ your documentation.

- +

LLVM Design & Overview

    @@ -57,7 +57,7 @@ frequent questions about LLVM's most frequently misunderstood instruction.
- +

LLVM User Guides

- +

Tutorial Introduction

@@ -123,7 +123,7 @@ languages!

- +

The Basic Language

@@ -181,7 +181,7 @@ a Mandelbrot Set at various levels of magnification.

- +

The Lexer

diff --git a/docs/tutorial/LangImpl2.html b/docs/tutorial/LangImpl2.html index ac4f1ee6df7..bfe8d3fca09 100644 --- a/docs/tutorial/LangImpl2.html +++ b/docs/tutorial/LangImpl2.html @@ -11,7 +11,7 @@ -
Kaleidoscope: Implementing a Parser and AST
+

Kaleidoscope: Implementing a Parser and AST

- +

Chapter 2 Introduction

@@ -61,7 +61,7 @@ Tree.

- +

The Abstract Syntax Tree (AST)

@@ -178,7 +178,7 @@ bodies in Kaleidoscope.

- +

Parser Basics

@@ -239,8 +239,7 @@ piece of our grammar: numeric literals.

- +

Basic Expression Parsing

@@ -394,8 +393,7 @@ They are a bit more complex.

- +

Binary Expression Parsing

@@ -617,7 +615,7 @@ handle function definitions, etc.

- +

Parsing the Rest

@@ -714,7 +712,7 @@ actually execute this code we've built!

- +

The Driver

@@ -753,7 +751,7 @@ type "4+5;", and the parser will know you are done.

- +

Conclusions

@@ -790,7 +788,7 @@ Representation (IR) from the AST.

- +

Full Code Listing

diff --git a/docs/tutorial/LangImpl3.html b/docs/tutorial/LangImpl3.html index 42e51696d91..468a1bfe5ff 100644 --- a/docs/tutorial/LangImpl3.html +++ b/docs/tutorial/LangImpl3.html @@ -11,7 +11,7 @@ -
Kaleidoscope: Code generation to LLVM IR
+

Kaleidoscope: Code generation to LLVM IR

- +

Chapter 3 Introduction

@@ -57,7 +57,7 @@ releases page.

- +

Code Generation Setup

@@ -147,7 +147,7 @@ has already been done, and we'll just use it to emit code.
- +

Expression Code Generation

@@ -293,7 +293,7 @@ basic framework.

- +

Function Code Generation

@@ -515,8 +515,7 @@ def bar() foo(1, 2); # error, unknown function "foo"
- +

Driver Changes and Closing Thoughts

@@ -657,7 +656,7 @@ support to this so we can actually start running code!

- +

Full Code Listing

diff --git a/docs/tutorial/LangImpl4.html b/docs/tutorial/LangImpl4.html index 2d876229c41..d73f8a351d8 100644 --- a/docs/tutorial/LangImpl4.html +++ b/docs/tutorial/LangImpl4.html @@ -11,7 +11,7 @@ -
Kaleidoscope: Adding JIT and Optimizer Support
+

Kaleidoscope: Adding JIT and Optimizer Support

- +

Chapter 4 Introduction

@@ -48,8 +48,7 @@ for the Kaleidoscope language.

- +

Trivial Constant Folding

@@ -134,8 +133,7 @@ range of optimizations that you can use, in the form of "passes".

- +

LLVM Optimization Passes

@@ -266,7 +264,7 @@ executing it!

- +

Adding a JIT Compiler

@@ -474,7 +472,7 @@ tackling some interesting LLVM IR issues along the way.

- +

Full Code Listing

diff --git a/docs/tutorial/LangImpl5.html b/docs/tutorial/LangImpl5.html index 2c1a07f6144..4fbf7beca42 100644 --- a/docs/tutorial/LangImpl5.html +++ b/docs/tutorial/LangImpl5.html @@ -11,7 +11,7 @@ -
Kaleidoscope: Extending the Language: Control Flow
+

Kaleidoscope: Extending the Language: Control Flow

- +

Chapter 5 Introduction

@@ -65,7 +65,7 @@ have an if/then/else expression plus a simple 'for' loop.

- +

If/Then/Else

@@ -111,8 +111,7 @@ pieces.

- +

Lexer Extensions for If/Then/Else

@@ -146,8 +145,7 @@ stuff:

- +

AST Extensions for If/Then/Else

@@ -172,8 +170,7 @@ public:
- +

Parser Extensions for If/Then/Else

@@ -231,7 +228,7 @@ static ExprAST *ParsePrimary() {
- +

LLVM IR for If/Then/Else

@@ -347,8 +344,7 @@ directly.

- +

Code Generation for If/Then/Else

@@ -501,7 +497,7 @@ another useful expression that is familiar from non-functional languages...

- +

'for' Loop Expression

@@ -536,8 +532,7 @@ support this.

- +

Lexer Extensions for the 'for' Loop

@@ -566,8 +561,7 @@ the 'for' Loop
- +

AST Extensions for the 'for' Loop

@@ -593,8 +587,7 @@ public:
- +

Parser Extensions for the 'for' Loop

@@ -653,8 +646,7 @@ static ExprAST *ParseForExpr() {
- +

LLVM IR for the 'for' Loop

@@ -699,8 +691,7 @@ expressions, and some basic blocks. Lets see how this fits together.

- +

Code Generation for the 'for' Loop

@@ -877,7 +868,7 @@ language.

- +

Full Code Listing

diff --git a/docs/tutorial/LangImpl6.html b/docs/tutorial/LangImpl6.html index 72fa9c3b080..510d9dde09a 100644 --- a/docs/tutorial/LangImpl6.html +++ b/docs/tutorial/LangImpl6.html @@ -11,7 +11,7 @@ -
Kaleidoscope: Extending the Language: User-defined Operators
+

Kaleidoscope: Extending the Language: User-defined Operators

- +

Chapter 6 Introduction

@@ -60,7 +60,7 @@ an example of what you can build with Kaleidoscope and its feature set.

- +

User-defined Operators: the Idea

@@ -125,7 +125,7 @@ operators.

- +

User-defined Binary Operators

@@ -342,7 +342,7 @@ see what it takes.

- +

User-defined Unary Operators

@@ -491,7 +491,7 @@ is simpler primarily because it doesn't need to handle any predefined operators.
- +

Kicking the Tires

@@ -796,7 +796,7 @@ add variable mutation without building SSA in your front-end.

- +

Full Code Listing

diff --git a/docs/tutorial/LangImpl7.html b/docs/tutorial/LangImpl7.html index 732d9086921..fc49d070476 100644 --- a/docs/tutorial/LangImpl7.html +++ b/docs/tutorial/LangImpl7.html @@ -12,7 +12,7 @@ -
Kaleidoscope: Extending the Language: Mutable Variables
+

Kaleidoscope: Extending the Language: Mutable Variables

- +

Chapter 7 Introduction

@@ -66,7 +66,7 @@ support for this, though the way it works is a bit unexpected for some.

- +

Why is this a hard problem?

@@ -140,7 +140,7 @@ logic.

- +

Memory in LLVM

@@ -321,8 +321,7 @@ variables now!
- +

Mutable Variables in Kaleidoscope

@@ -378,8 +377,7 @@ Kaleidoscope to support new variable definitions.
- +

Adjusting Existing Variables for Mutation

@@ -648,7 +646,7 @@ we'll add the assignment operator.

- +

New Assignment Operator

@@ -745,8 +743,7 @@ add this next!
- +

User-defined Local Variables

@@ -979,7 +976,7 @@ anywhere in sight.

- +

Full Code Listing

diff --git a/docs/tutorial/LangImpl8.html b/docs/tutorial/LangImpl8.html index 5f993ecf9fa..449ac706620 100644 --- a/docs/tutorial/LangImpl8.html +++ b/docs/tutorial/LangImpl8.html @@ -11,8 +11,7 @@ -
Kaleidoscope: Conclusion and other useful LLVM - tidbits
+

Kaleidoscope: Conclusion and other useful LLVM tidbits

- +

Tutorial Conclusion

@@ -154,8 +153,7 @@ are very useful if you want to take advantage of LLVM's capabilities.

- +

Properties of the LLVM IR

@@ -166,8 +164,7 @@ get these out of the way right now, shall we?

- +

Target Independence

@@ -221,7 +218,7 @@ in-kernel language.

- +

Safety Guarantees

@@ -243,8 +240,7 @@ list if you are interested in more details.

- +

Language-Specific Optimizations

@@ -298,7 +294,7 @@ language-specific AST.
- +

Tips and Tricks

@@ -310,8 +306,7 @@ everyone rediscover them, this section talks about some of these issues.

- +

Implementing portable offsetof/sizeof

@@ -331,8 +326,7 @@ in a portable way.

- +

Garbage Collected Stack Frames

diff --git a/docs/tutorial/OCamlLangImpl1.html b/docs/tutorial/OCamlLangImpl1.html index 3ec7c1ef772..5446b7a729b 100644 --- a/docs/tutorial/OCamlLangImpl1.html +++ b/docs/tutorial/OCamlLangImpl1.html @@ -12,7 +12,7 @@ -
Kaleidoscope: Tutorial Introduction and the Lexer
+

Kaleidoscope: Tutorial Introduction and the Lexer

- +

Tutorial Introduction

@@ -130,7 +130,7 @@ languages!

- +

The Basic Language

@@ -188,7 +188,7 @@ a Mandelbrot Set at various levels of magnification.

- +

The Lexer

diff --git a/docs/tutorial/OCamlLangImpl2.html b/docs/tutorial/OCamlLangImpl2.html index 9b002324cf6..deb592ee411 100644 --- a/docs/tutorial/OCamlLangImpl2.html +++ b/docs/tutorial/OCamlLangImpl2.html @@ -12,7 +12,7 @@ -
Kaleidoscope: Implementing a Parser and AST
+

Kaleidoscope: Implementing a Parser and AST

- +

Chapter 2 Introduction

@@ -65,7 +65,7 @@ Tree.

- +

The Abstract Syntax Tree (AST)

@@ -146,7 +146,7 @@ bodies in Kaleidoscope.

- +

Parser Basics

@@ -181,8 +181,7 @@ piece of our grammar: numeric literals.

- +

Basic Expression Parsing

@@ -303,8 +302,7 @@ They are a bit more complex.

- +

Binary Expression Parsing

@@ -517,7 +515,7 @@ handle function definitions, etc.

- +

Parsing the Rest

@@ -596,7 +594,7 @@ actually execute this code we've built!

- +

The Driver

@@ -652,7 +650,7 @@ type "4+5;", and the parser will know you are done.

- +

Conclusions

@@ -689,7 +687,7 @@ Representation (IR) from the AST.

- +

Full Code Listing

diff --git a/docs/tutorial/OCamlLangImpl3.html b/docs/tutorial/OCamlLangImpl3.html index e7c419e2662..cf5afe9b718 100644 --- a/docs/tutorial/OCamlLangImpl3.html +++ b/docs/tutorial/OCamlLangImpl3.html @@ -12,7 +12,7 @@ -
Kaleidoscope: Code generation to LLVM IR
+

Kaleidoscope: Code generation to LLVM IR

- +

Chapter 3 Introduction

@@ -57,7 +57,7 @@ LLVM SVN to work. LLVM 2.2 and before will not work with it.

- +

Code Generation Setup

@@ -128,7 +128,7 @@ that this has already been done, and we'll just use it to emit code.

- +

Expression Code Generation

@@ -263,7 +263,7 @@ basic framework.

- +

Function Code Generation

@@ -466,8 +466,7 @@ def bar() foo(1, 2); # error, unknown function "foo"
- +

Driver Changes and Closing Thoughts

@@ -607,7 +606,7 @@ support to this so we can actually start running code!

- +

Full Code Listing

diff --git a/docs/tutorial/OCamlLangImpl4.html b/docs/tutorial/OCamlLangImpl4.html index 2219f3ae9eb..e42404561cc 100644 --- a/docs/tutorial/OCamlLangImpl4.html +++ b/docs/tutorial/OCamlLangImpl4.html @@ -12,7 +12,7 @@ -
Kaleidoscope: Adding JIT and Optimizer Support
+

Kaleidoscope: Adding JIT and Optimizer Support

- +

Chapter 4 Introduction

@@ -52,8 +52,7 @@ for the Kaleidoscope language.

- +

Trivial Constant Folding

@@ -148,8 +147,7 @@ range of optimizations that you can use, in the form of "passes".

- +

LLVM Optimization Passes

@@ -283,7 +281,7 @@ executing it!

- +

Adding a JIT Compiler

@@ -486,7 +484,7 @@ constructs, tackling some interesting LLVM IR issues along the way.

- +

Full Code Listing

diff --git a/docs/tutorial/OCamlLangImpl5.html b/docs/tutorial/OCamlLangImpl5.html index 74f28e7f030..59c17492a37 100644 --- a/docs/tutorial/OCamlLangImpl5.html +++ b/docs/tutorial/OCamlLangImpl5.html @@ -12,7 +12,7 @@ -
Kaleidoscope: Extending the Language: Control Flow
+

Kaleidoscope: Extending the Language: Control Flow

- +

Chapter 5 Introduction

@@ -69,7 +69,7 @@ have an if/then/else expression plus a simple 'for' loop.

- +

If/Then/Else

@@ -115,8 +115,7 @@ pieces.

- +

Lexer Extensions for If/Then/Else

@@ -153,8 +152,7 @@ stuff:

- +

AST Extensions for If/Then/Else

@@ -175,8 +173,7 @@ type expr =
- +

Parser Extensions for If/Then/Else

@@ -214,7 +211,7 @@ let rec parse_primary = parser
- +

LLVM IR for If/Then/Else

@@ -331,8 +328,7 @@ directly.

- +

Code Generation for If/Then/Else

@@ -493,7 +489,7 @@ another useful expression that is familiar from non-functional languages...

- +

'for' Loop Expression

@@ -528,8 +524,7 @@ support this.

- +

Lexer Extensions for the 'for' Loop

@@ -559,8 +554,7 @@ the 'for' Loop
- +

AST Extensions for the 'for' Loop

@@ -580,8 +574,7 @@ type expr =
- +

Parser Extensions for the 'for' Loop

@@ -628,8 +621,7 @@ let rec parse_primary = parser
- +

LLVM IR for the 'for' Loop

@@ -674,8 +666,7 @@ expressions, and some basic blocks. Lets see how this fits together.

- +

Code Generation for the 'for' Loop

@@ -852,7 +843,7 @@ to our poor innocent language.

- +

Full Code Listing

diff --git a/docs/tutorial/OCamlLangImpl6.html b/docs/tutorial/OCamlLangImpl6.html index c5772a2d946..693aafc0b38 100644 --- a/docs/tutorial/OCamlLangImpl6.html +++ b/docs/tutorial/OCamlLangImpl6.html @@ -12,7 +12,7 @@ -
Kaleidoscope: Extending the Language: User-defined Operators
+

Kaleidoscope: Extending the Language: User-defined Operators

- +

Chapter 6 Introduction

@@ -64,7 +64,7 @@ an example of what you can build with Kaleidoscope and its feature set.

- +

User-defined Operators: the Idea

@@ -129,7 +129,7 @@ operators.

- +

User-defined Binary Operators

@@ -320,7 +320,7 @@ see what it takes.

- +

User-defined Unary Operators

@@ -472,7 +472,7 @@ is simpler primarily because it doesn't need to handle any predefined operators.
- +

Kicking the Tires

@@ -778,7 +778,7 @@ add variable mutation without building SSA in your front-end.

- +

Full Code Listing

diff --git a/docs/tutorial/OCamlLangImpl7.html b/docs/tutorial/OCamlLangImpl7.html index 42d8141a819..aebc81c08e7 100644 --- a/docs/tutorial/OCamlLangImpl7.html +++ b/docs/tutorial/OCamlLangImpl7.html @@ -13,7 +13,7 @@ -
Kaleidoscope: Extending the Language: Mutable Variables
+

Kaleidoscope: Extending the Language: Mutable Variables

- +

Chapter 7 Introduction

@@ -70,7 +70,7 @@ support for this, though the way it works is a bit unexpected for some.

- +

Why is this a hard problem?

@@ -144,7 +144,7 @@ logic.

- +

Memory in LLVM

@@ -325,8 +325,7 @@ variables now!
- +

Mutable Variables in Kaleidoscope

@@ -382,8 +381,7 @@ Kaleidoscope to support new variable definitions.
- +

Adjusting Existing Variables for Mutation

@@ -672,7 +670,7 @@ we'll add the assignment operator.

- +

New Assignment Operator

@@ -773,8 +771,7 @@ add this next!
- +

User-defined Local Variables

@@ -956,7 +953,7 @@ anywhere in sight.

- +

Full Code Listing

diff --git a/docs/tutorial/OCamlLangImpl8.html b/docs/tutorial/OCamlLangImpl8.html index 5f993ecf9fa..449ac706620 100644 --- a/docs/tutorial/OCamlLangImpl8.html +++ b/docs/tutorial/OCamlLangImpl8.html @@ -11,8 +11,7 @@ -
Kaleidoscope: Conclusion and other useful LLVM - tidbits
+

Kaleidoscope: Conclusion and other useful LLVM tidbits

- +

Tutorial Conclusion

@@ -154,8 +153,7 @@ are very useful if you want to take advantage of LLVM's capabilities.

- +

Properties of the LLVM IR

@@ -166,8 +164,7 @@ get these out of the way right now, shall we?

- +

Target Independence

@@ -221,7 +218,7 @@ in-kernel language.

- +

Safety Guarantees

@@ -243,8 +240,7 @@ list if you are interested in more details.

- +

Language-Specific Optimizations

@@ -298,7 +294,7 @@ language-specific AST.
- +

Tips and Tricks

@@ -310,8 +306,7 @@ everyone rediscover them, this section talks about some of these issues.

- +

Implementing portable offsetof/sizeof

@@ -331,8 +326,7 @@ in a portable way.

- +

Garbage Collected Stack Frames

diff --git a/docs/tutorial/index.html b/docs/tutorial/index.html index 11dd5e2d732..0a8cae2c2c9 100644 --- a/docs/tutorial/index.html +++ b/docs/tutorial/index.html @@ -12,7 +12,7 @@ -
LLVM Tutorial: Table of Contents
+

LLVM Tutorial: Table of Contents

  1. Kaleidoscope: Implementing a Language with LLVM