Index
A
- address
- obtaining, of element / Getting the address of an element
B
- basic block
- simple arithmetic statement, emitting in / Emitting a simple arithmetic statement in a basic block
- BasicBlockPass class / Pass and Pass Manager
- Basic Register Allocator
- about / Register allocation
- block
- adding, to function / Adding a block to a function
- Bugpoint tool
C
- code emission
- about / Code Emission
- collection of libraries
- command line arguments, opt
- basicaa / LLVM tools and using them in the command line
- da / LLVM tools and using them in the command line
- instcount / LLVM tools and using them in the command line
- loops / LLVM tools and using them in the command line
- scalar evolution / LLVM tools and using them in the command line
- constprop / LLVM tools and using them in the command line
- globalopt / LLVM tools and using them in the command line
- inline / LLVM tools and using them in the command line
- instcombine / LLVM tools and using them in the command line
- licm / LLVM tools and using them in the command line
- tailcallelim / LLVM tools and using them in the command line
E
- element
- address, obtaining of / Getting the address of an element
F
- Fast Register Allocator
- about / Register allocation
- flags, PassManager class
- time-passes / Pass and Pass Manager
- stats / Pass and Pass Manager
- instcount / Pass and Pass Manager
- frame lowering
- implementing / Implementing frame lowering
- function
- emitting, in Module / Emitting a function in a module
- block, adding to / Adding a block to a function
- function arguments
- emitting / Emitting function arguments
- FunctionPass class / Pass and Pass Manager
G
- Global Variable
- emitting / Emitting a global variable
- Greedy Register Allocator
- about / Register allocation
I
- if-else condition IR
- emitting / Emitting if-else condition IR
- instcombine module
- methods / Instruction Combining
- instruction
- printing / Printing an instruction
- instruction combining
- about / Instruction Combining
- Instruction Selection
- about / Instruction Selection
- instruction set
- defining / Defining the instruction set
- instruction simplification example
- about / Instruction simplification example
- methods / Instruction simplification example
- instructions lowering
- implementing / Lowering instructions
- IR
- converting, to selectionDAG / Converting IR to selectionDAG
L
- Linkages
- about / Emitting a global variable
- ExternalLinkage / Emitting a global variable
- AvailableExternallyLinkage / Emitting a global variable
- LinkOnceAnyLinkage / Emitting a global variable
- LinkOnceODRLinkage / Emitting a global variable
- WeakAnyLinkage / Emitting a global variable
- WeakODRLinkage / Emitting a global variable
- AppendingLinkage / Emitting a global variable
- InternalLinkage / Emitting a global variable
- PrivateLinkage / Emitting a global variable
- ExternalWeakLinkage / Emitting a global variable
- CommonLinkage / Emitting a global variable
- llc / LLVM tools and using them in the command line
- lli / LLVM tools and using them in the command line
- llvm-as / LLVM tools and using them in the command line
- llvm-dis / LLVM tools and using them in the command line
- llvm-link / LLVM tools and using them in the command line
- LLVM Bitcode file format
- reference link / LLVM tools and using them in the command line
- LLVM intrinsics
- about / LLVM intrinsics
- reference link / LLVM intrinsics
- LLVM IR
- about / Getting familiar with LLVM IR
- emitting, for loop / Emitting LLVM IR for loop
- LLVM Module
- creating / Creating an LLVM module
- LLVM tools
- about / LLVM tools and using them in the command line
- llvm-as / LLVM tools and using them in the command line
- llvm-dis / LLVM tools and using them in the command line
- llvm-link / LLVM tools and using them in the command line
- lli / LLVM tools and using them in the command line
- llc / LLVM tools and using them in the command line
- opt / LLVM tools and using them in the command line
- local variables
- register allocated local variables / Getting familiar with LLVM IR
- stack allocated local variables / Getting familiar with LLVM IR
- loop
- LLVM IR, emitting for / Emitting LLVM IR for loop
- Loop Interchange
- about / Loop processing
- Loop Invariant Code Motion (LICM)
- about / Loop processing
- LoopPass class / Pass and Pass Manager
- loop processing
- about / Loop processing
- Loop Rotation
- about / Loop processing
- Loop Simplify Pass
- about / Loop processing
- Loop Unswitch
- about / Loop processing
- loop vectorization
- about / Vectorization
M
- Machine Basic Block / Implementing frame lowering
- Machine Instruction
- scheduling / Scheduling and emitting machine instructions
- emitting / Scheduling and emitting machine instructions
- memory
- address, reading from / Reading from the memory
- memory access operations / Memory access operations
- memory location
- writing into / Writing into a memory location
- methods, for filling information
- AnalysisUsage**addRequired<> method / AnalysisUsage::addRequired<> method
- AnalysisUsage*addRequiredTransitive<> method / AnalysisUsage:addRequiredTransitive<> method
- AnalysisUsage**addPreserved<> method / AnalysisUsage::addPreserved<> method
- methods, for instruction simplification
- SimplifyBinOp / Instruction simplification example
- SimplifyAddInst / Instruction simplification example
- SimplifySubInst / Instruction simplification example
- SimplifyAndInst / Instruction simplification example
- methods, for simplification of instcombine module
- SimplifyAssociativeOrCommutative / Instruction Combining
- tryFactorization / Instruction Combining
- modular design
- Module
- function, emitting in / Emitting a function in a module
- ModulePass subclass
- about / Pass and Pass Manager
N
- natural loops
- about / Loop processing
O
- opt
- about / LLVM tools and using them in the command line
- command line arguments / LLVM tools and using them in the command line
- Optimizer
- Opt tool
- about / Opt Tool
P
- Pass class
- about / Pass and Pass Manager
- virtual methods / Pass and Pass Manager
- passes
- reference link / Opt Tool
- Pass info
- using, in own Pass / Using other Pass info in current Pass
- Pass Manager class
- about / Pass and Pass Manager
- flags / Pass and Pass Manager
- PBQP Register Allocator
- about / Register allocation
- PHI instruction / Emitting if-else condition IR
R
- register allocated local variables
- about / Getting familiar with LLVM IR
- register allocation
- about / Register allocation
- register allocation, for mapping virtual registers to physical registers
- Direct Mapping / Register allocation
- Indirect Mapping / Register allocation
- register allocation techniques, LLVM
- Basic Register Allocator / Register allocation
- Fast Register Allocator / Register allocation
- PBQP Register Allocator / Register allocation
- Greedy Register Allocator / Register allocation
- registers
- defining / Defining registers and register sets
- registers set
- defining / Defining registers and register sets
- Return statement
- emitting / Emitting a return statement
S
- sample backend
- about / Sample backend
- registers, defining / Defining registers and register sets
- registers sets, defining / Defining registers and register sets
- calling convention, defining / Defining the calling convention
- scalar
- inserting, into vector / Inserting a scalar into a vector
- extracting, from vector / Extracting a scalar from a vector
- scalar evolution
- about / Scalar evolution
- SelectionDAG
- legalizing / Legalizing SelectionDAG
- optimizing / Optimizing SelectionDAG
- selectionDAG
- IR, converting to / Converting IR to selectionDAG
- simple arithmetic statement
- emitting, in basic block / Emitting a simple arithmetic statement in a basic block
- Single-instruction multiple-data (SIMD)
- about / Vectorization
- single instruction multiple data (SIMD) / Inserting a scalar into a vector
- SLP Vectorization
- about / Vectorization
- spilling
- about / Register allocation
- stack allocated local variables
- about / Getting familiar with LLVM IR
- static single assignment (SSA) / Getting familiar with LLVM IR
- Superword-Level Parallelism (SLP)
- about / Vectorization
T
- tablegen tool
- TargetTransformInfo (TTI)
- about / Vectorization
V
- vector
- scalar, inserting into / Inserting a scalar into a vector
- scalar, extracting from / Extracting a scalar from a vector
- vectorization
- about / Vectorization
- virtual methods, Pass class
- doInitialization / Pass and Pass Manager
- runOn{Passtype} / Pass and Pass Manager
- doFinalization / Pass and Pass Manager