X-Git-Url: http://plrg.eecs.uci.edu/git/?a=blobdiff_plain;f=docs%2FLexicon.rst;h=912dee2cf0790e77e18f689bc11d74e246233ca2;hb=36eebaa409ab1bceb9ad0d4fb8ad7e47d61bd31c;hp=10821f471296ce0edb4aafe8399edfc2399bf12d;hpb=a7aec400a7014edba1eeb53c582d3ab47178fe8d;p=oota-llvm.git diff --git a/docs/Lexicon.rst b/docs/Lexicon.rst index 10821f47129..912dee2cf07 100644 --- a/docs/Lexicon.rst +++ b/docs/Lexicon.rst @@ -15,6 +15,21 @@ A **ADCE** Aggressive Dead Code Elimination +**AST** + Abstract Syntax Tree. + + Due to Clang's influence (mostly the fact that parsing and semantic + analysis are so intertwined for C and especially C++), the typical + working definition of AST in the LLVM community is roughly "the + compiler's first complete symbolic (as opposed to textual) + representation of an input program". + As such, an "AST" might be a more general graph instead of a "tree" + (consider the symbolic representation for the type of a typical "linked + list node"). This working definition is closer to what some authors + call an "annotated abstract syntax tree". + + Consult your favorite compiler book or search engine for more details. + B - @@ -31,11 +46,20 @@ B C - +**CFI** + Call Frame Information. Used in DWARF debug info and in C++ unwind info + to show how the function prolog lays out the stack frame. + +**CIE** + Common Information Entry. A kind of CFI used to reduce the size of FDEs. + The compiler creates a CIE which contains the information common across all + the FDEs. Each FDE then points to its CIE. + **CSE** Common Subexpression Elimination. An optimization that removes common subexpression compuation. For example ``(a+b)*(a+b)`` has two subexpressions that are the same: ``(a+b)``. This optimization would perform the addition - only once and then perform the multiply (but only if it's compulationally + only once and then perform the multiply (but only if it's computationally correct/safe). D @@ -67,6 +91,10 @@ F **FCA** First Class Aggregate +**FDE** + Frame Description Entry. A kind of CFI used to describe the stack frame of + one function. + G - @@ -103,9 +131,21 @@ L **LCSSA** Loop-Closed Static Single Assignment Form +**LGTM** + "Looks Good To Me". In a review thread, this indicates that the + reviewer thinks that the patch is okay to commit. + **LICM** Loop Invariant Code Motion +**LSDA** + Language Specific Data Area. C++ "zero cost" unwinding is built on top a + generic unwinding mechanism. As the unwinder walks each frame, it calls + a "personality" function to do language specific analysis. Each function's + FDE points to an optional LSDA which is passed to the personality function. + For C++, the LSDA contain info about the type and location of catch + statements in that function. + **Load-VN** Load Value Numbering @@ -118,6 +158,15 @@ M **MC** Machine Code +N +- + +**NFC** + "No functional change". Used in a commit message to indicate that a patch + is a pure refactoring/cleanup. + Usually used in the first line, so it is visible without opening the + actual commit email. + O - .. _object pointer: @@ -144,7 +193,7 @@ R ``Constant::replaceUsesOfWithOnConstant()`` implement the replacement of one Value with another by iterating over its def/use chain and fixing up all of the pointers to point to the new value. See - also `def/use chains `_. + also `def/use chains `_. **Reassociation** Rearranging associative expressions to promote better redundancy elimination