Hubwiz.com
|
Online Course
|
API Manual
LLVM API Manual
Category(514)
Service(123)
Instruction(187)
Sample(17)
Command(26)
Guide(44)
Category
index
next
Abstract
Introduction
Well-Formedness
Identifiers
High Level Structure
Module Structure
Linkage Types
Calling Conventions
Visibility Styles
DLL Storage Classes
Thread Local Storage Models
Runtime Preemption Specifiers
Structure Types
Non-Integral Pointer Type
Global Variables
Functions
Aliases
IFuncs
Comdats
Named Metadata
Parameter Attributes
Garbage Collector Strategy Names
Prefix Data
Prologue Data
Personality Function
Attribute Groups
Function Attributes
Global Attributes
Operand Bundles
Deoptimization Operand Bundles
Funclet Operand Bundles
GC Transition Operand Bundles
Module-Level Inline Assembly
Data Layout
Target Triple
Pointer Aliasing Rules
Volatile Memory Accesses
Memory Model for Concurrent Operations
Atomic Memory Ordering Constraints
Fast-Math Flags
Use-list Order Directives
Source Filename
Type System
Void Type
Function Type
First Class Types
Single Value Types
Integer Type
Floating Point Types
X86_mmx Type
Pointer Type
Vector Type
Label Type
Token Type
Metadata Type
Aggregate Types
Array Type
Structure Type
Opaque Structure Types
Constants
Simple Constants
Complex Constants
Global Variable and Function Addresses
Undefined Values
Poison Values
Addresses of Basic Blocks
Constant Expressions
Other Values
Inline Assembler Expressions
Inline Asm Constraint String
Output constraints
Input constraints
Indirect inputs and outputs
Clobber constraints
Constraint Codes
Supported Constraint Code List
Asm template argument modifiers
Inline Asm Metadata
Metadata
Metadata Nodes and Metadata Strings
Specialized Metadata Nodes
DICompileUnit
DIFile
DIBasicType
DISubroutineType
DIDerivedType
DICompositeType
DISubrange
DIEnumerator
DITemplateTypeParameter
DITemplateValueParameter
DINamespace
DIGlobalVariable
DISubprogram
DILexicalBlock
DILexicalBlockFile
DILocation
DILocalVariable
DIExpression
DIObjCProperty
DIImportedEntity
DIMacro
DIMacroFile
��tbaa�� Metadata
Semantics
Representation
��tbaa.struct�� Metadata
��noalias�� and ��alias.scope�� Metadata
��fpmath�� Metadata
��range�� Metadata
��absolute_symbol�� Metadata
��callees�� Metadata
��unpredictable�� Metadata
��llvm.loop��
��llvm.loop.vectorize�� and ��llvm.loop.interleave��
��llvm.loop.interleave.count�� Metadata
��llvm.loop.vectorize.enable�� Metadata
��llvm.loop.vectorize.width�� Metadata
��llvm.loop.unroll��
��llvm.loop.unroll.count�� Metadata
��llvm.loop.unroll.disable�� Metadata
��llvm.loop.unroll.runtime.disable�� Metadata
��llvm.loop.unroll.enable�� Metadata
��llvm.loop.unroll.full�� Metadata
��llvm.loop.licm_versioning.disable�� Metadata
��llvm.loop.distribute.enable�� Metadata
��llvm.mem��
��llvm.mem.parallel_loop_access�� Metadata
��irr_loop�� Metadata
��invariant.group�� Metadata
��type�� Metadata
��associated�� Metadata
��prof�� Metadata
branch_weights
function_entry_count
Module Flags Metadata
Objective-C Garbage Collection Module Flags Metadata
C type width Module Flags Metadata
Automatic Linker Flags Named Metadata
Intrinsic Global Variables
The ��llvm.used�� Global Variable
The ��llvm.compiler.used�� Global Variable
The ��llvm.global_ctors�� Global Variable
The ��llvm.global_dtors�� Global Variable
Instruction Reference
Terminator Instructions
��ret�� Instruction
Syntax:
Overview:
Arguments:
Semantics:
Example:
��br�� Instruction
��switch�� Instruction
Implementation:
��indirectbr�� Instruction
��invoke�� Instruction
��resume�� Instruction
��catchswitch�� Instruction
��catchret�� Instruction
��cleanupret�� Instruction
��unreachable�� Instruction
Binary Operations
��add�� Instruction
��fadd�� Instruction
��sub�� Instruction
��fsub�� Instruction
��mul�� Instruction
��fmul�� Instruction
��udiv�� Instruction
��sdiv�� Instruction
��fdiv�� Instruction
��urem�� Instruction
��srem�� Instruction
��frem�� Instruction
Bitwise Binary Operations
��shl�� Instruction
��lshr�� Instruction
��ashr�� Instruction
��and�� Instruction
��or�� Instruction
��xor�� Instruction
Vector Operations
��extractelement�� Instruction
��insertelement�� Instruction
��shufflevector�� Instruction
Aggregate Operations
��extractvalue�� Instruction
��insertvalue�� Instruction
Memory Access and Addressing Operations
��alloca�� Instruction
��load�� Instruction
Examples:
��store�� Instruction
��fence�� Instruction
��cmpxchg�� Instruction
��atomicrmw�� Instruction
��getelementptr�� Instruction
Vector of pointers:
Conversion Operations
��trunc .. to�� Instruction
��zext .. to�� Instruction
��sext .. to�� Instruction
��fptrunc .. to�� Instruction
��fpext .. to�� Instruction
��fptoui .. to�� Instruction
��fptosi .. to�� Instruction
��uitofp .. to�� Instruction
��sitofp .. to�� Instruction
��ptrtoint .. to�� Instruction
��inttoptr .. to�� Instruction
��bitcast .. to�� Instruction
��addrspacecast .. to�� Instruction
Other Operations
��icmp�� Instruction
��fcmp�� Instruction
��phi�� Instruction
��select�� Instruction
��call�� Instruction
��va_arg�� Instruction
��landingpad�� Instruction
��catchpad�� Instruction
��cleanuppad�� Instruction
Intrinsic Functions
Variable Argument Handling Intrinsics
��llvm.va_start�� Intrinsic
��llvm.va_end�� Intrinsic
��llvm.va_copy�� Intrinsic
Accurate Garbage Collection Intrinsics
Experimental Statepoint Intrinsics
��llvm.gcroot�� Intrinsic
��llvm.gcread�� Intrinsic
��llvm.gcwrite�� Intrinsic
Code Generator Intrinsics
��llvm.returnaddress�� Intrinsic
��llvm.addressofreturnaddress�� Intrinsic
��llvm.frameaddress�� Intrinsic
��llvm.localescape�� and ��llvm.localrecover�� Intrinsics
��llvm.read_register�� and ��llvm.write_register�� Intrinsics
��llvm.stacksave�� Intrinsic
��llvm.stackrestore�� Intrinsic
��llvm.get.dynamic.area.offset�� Intrinsic
��llvm.prefetch�� Intrinsic
��llvm.pcmarker�� Intrinsic
��llvm.readcyclecounter�� Intrinsic
��llvm.clear_cache�� Intrinsic
��llvm.instrprof_increment�� Intrinsic
��llvm.instrprof_increment_step�� Intrinsic
��llvm.instrprof_value_profile�� Intrinsic
��llvm.thread.pointer�� Intrinsic
Standard C Library Intrinsics
��llvm.memcpy�� Intrinsic
��llvm.memmove�� Intrinsic
��llvm.memset.*�� Intrinsics
��llvm.sqrt.*�� Intrinsic
��llvm.powi.*�� Intrinsic
��llvm.sin.*�� Intrinsic
��llvm.cos.*�� Intrinsic
��llvm.pow.*�� Intrinsic
��llvm.exp.*�� Intrinsic
��llvm.exp2.*�� Intrinsic
��llvm.log.*�� Intrinsic
��llvm.log10.*�� Intrinsic
��llvm.log2.*�� Intrinsic
��llvm.fma.*�� Intrinsic
��llvm.fabs.*�� Intrinsic
��llvm.minnum.*�� Intrinsic
��llvm.maxnum.*�� Intrinsic
��llvm.copysign.*�� Intrinsic
��llvm.floor.*�� Intrinsic
��llvm.ceil.*�� Intrinsic
��llvm.trunc.*�� Intrinsic
��llvm.rint.*�� Intrinsic
��llvm.nearbyint.*�� Intrinsic
��llvm.round.*�� Intrinsic
Bit Manipulation Intrinsics
��llvm.bitreverse.*�� Intrinsics
��llvm.bswap.*�� Intrinsics
��llvm.ctpop.*�� Intrinsic
��llvm.ctlz.*�� Intrinsic
��llvm.cttz.*�� Intrinsic
Arithmetic with Overflow Intrinsics
��llvm.sadd.with.overflow.*�� Intrinsics
��llvm.uadd.with.overflow.*�� Intrinsics
��llvm.ssub.with.overflow.*�� Intrinsics
��llvm.usub.with.overflow.*�� Intrinsics
��llvm.smul.with.overflow.*�� Intrinsics
��llvm.umul.with.overflow.*�� Intrinsics
Specialised Arithmetic Intrinsics
��llvm.canonicalize.*�� Intrinsic
��llvm.fmuladd.*�� Intrinsic
Experimental Vector Reduction Intrinsics
��llvm.experimental.vector.reduce.add.*�� Intrinsic
��llvm.experimental.vector.reduce.fadd.*�� Intrinsic
��llvm.experimental.vector.reduce.mul.*�� Intrinsic
��llvm.experimental.vector.reduce.fmul.*�� Intrinsic
��llvm.experimental.vector.reduce.and.*�� Intrinsic
��llvm.experimental.vector.reduce.or.*�� Intrinsic
��llvm.experimental.vector.reduce.xor.*�� Intrinsic
��llvm.experimental.vector.reduce.smax.*�� Intrinsic
��llvm.experimental.vector.reduce.smin.*�� Intrinsic
��llvm.experimental.vector.reduce.umax.*�� Intrinsic
��llvm.experimental.vector.reduce.umin.*�� Intrinsic
��llvm.experimental.vector.reduce.fmax.*�� Intrinsic
��llvm.experimental.vector.reduce.fmin.*�� Intrinsic
Half Precision Floating Point Intrinsics
��llvm.convert.to.fp16�� Intrinsic
��llvm.convert.from.fp16�� Intrinsic
Debugger Intrinsics
Exception Handling Intrinsics
Trampoline Intrinsics
��llvm.init.trampoline�� Intrinsic
��llvm.adjust.trampoline�� Intrinsic
Masked Vector Load and Store Intrinsics
��llvm.masked.load.*�� Intrinsics
��llvm.masked.store.*�� Intrinsics
Masked Vector Gather and Scatter Intrinsics
��llvm.masked.gather.*�� Intrinsics
��llvm.masked.scatter.*�� Intrinsics
Memory Use Markers
��llvm.lifetime.start�� Intrinsic
��llvm.lifetime.end�� Intrinsic
��llvm.invariant.start�� Intrinsic
��llvm.invariant.end�� Intrinsic
��llvm.invariant.group.barrier�� Intrinsic
Constrained Floating Point Intrinsics
��llvm.experimental.constrained.fadd�� Intrinsic
��llvm.experimental.constrained.fsub�� Intrinsic
��llvm.experimental.constrained.fmul�� Intrinsic
��llvm.experimental.constrained.fdiv�� Intrinsic
��llvm.experimental.constrained.frem�� Intrinsic
��llvm.experimental.constrained.fma�� Intrinsic
Constrained libm-equivalent Intrinsics
��llvm.experimental.constrained.sqrt�� Intrinsic
��llvm.experimental.constrained.pow�� Intrinsic
��llvm.experimental.constrained.powi�� Intrinsic
��llvm.experimental.constrained.sin�� Intrinsic
��llvm.experimental.constrained.cos�� Intrinsic
��llvm.experimental.constrained.exp�� Intrinsic
��llvm.experimental.constrained.exp2�� Intrinsic
��llvm.experimental.constrained.log�� Intrinsic
��llvm.experimental.constrained.log10�� Intrinsic
��llvm.experimental.constrained.log2�� Intrinsic
��llvm.experimental.constrained.rint�� Intrinsic
��llvm.experimental.constrained.nearbyint�� Intrinsic
General Intrinsics
��llvm.var.annotation�� Intrinsic
��llvm.ptr.annotation.*�� Intrinsic
��llvm.annotation.*�� Intrinsic
��llvm.codeview.annotation�� Intrinsic
��llvm.trap�� Intrinsic
��llvm.debugtrap�� Intrinsic
��llvm.stackprotector�� Intrinsic
��llvm.stackguard�� Intrinsic
��llvm.objectsize�� Intrinsic
��llvm.expect�� Intrinsic
��llvm.assume�� Intrinsic
��llvm.ssa_copy�� Intrinsic
��llvm.type.test�� Intrinsic
��llvm.type.checked.load�� Intrinsic
��llvm.donothing�� Intrinsic
��llvm.experimental.deoptimize�� Intrinsic
Lowering:
��llvm.experimental.guard�� Intrinsic
��llvm.load.relative�� Intrinsic
��llvm.sideeffect�� Intrinsic
Stack Map Intrinsics
Element Wise Atomic Memory Intrinsics
��llvm.memcpy.element.unordered.atomic�� Intrinsic
��llvm.memmove.element.unordered.atomic�� Intrinsic
��llvm.memset.element.unordered.atomic�� Intrinsic
global variable
function definition
named metadata
linkage types
calls
invokes
Tail calls can onlybe optimized when this, the GHC or the HiPE convention isused.
Stack maps and patch points in LLVM
structuretypes
opaque structural type
datalayout string
DLL storage class
runtime preemption specifier
global attributes
Thread Local Storage Model
visibilitystyle
calling convention
parameter attribute
function attributes
comdat
garbage collector name
prefix
prologue
personality
terminator
PHI nodes
llvm.stackrestore
Design and Usage of the InAlloca Attribute
based
alias analysis
trampoline intrinsics
bitcast instruction
built in to LLVM
attribute group
description in the EH doc
GC Transitions
load
store
llvm.memcpy
LLVM Atomic Instructions and Concurrency Guide
Atomic Memory OrderingConstraints
cmpxchg
atomicrmw
fence
fadd
fsub
fmul
fdiv
frem
fcmp
label
metadata
variable argumenthandling intrinsic
Pointer
first class
array
function
select
Vectors
integer
floatingpoint
token type
aggregate
undef values
add
ret
resume
volatileoperations
indirectbr
trunc operation
zext operation
sext operation
ptrtoint operation
inttoptr operation
addrspacecast instruction
getelementptr operation
icmp operation
extractelement operation
insertelement operation
shufflevector operation
extractvalue operation
insertvalue operation
binary
bitwisebinary
Module-LevelInline Assembly
subprogram declarations
memberderived types
debug intrinsics
other usefulAliasAnalysis methods
Type Metadata
LLVM Branch Weight Metadata
appending linkage
memory instructions
other instructions
switch
catchswitch
catchret
cleanupret
unreachable
well formed
blockaddress
landingpad
operand bundles
catchpad
cleanuppad
poison value
fast-math flags
defined
syncscope
the getelementptr FAQ
can be ignored
inalloca
Platform-specific constraints aremet.
intrinsicfunction
Windows exception handling documentation
��funclet�� bundle
ExtendingLLVM Guide
va_arg
llvm.va_start
llvm.va_copy
Accurate Garbage Collection
GC roots on thestack
read
write
Garbage Collection Safepoints in LLVM
alloca
llvm.stacksave
llvm.get.dynamic.area.offset
llvm.convert.from.fp16
llvm.convert.to.fp16
LLVM Source LevelDebugging
LLVM ExceptionHandling
nest
llvm.adjust.trampoline
llvm.init.trampoline
Masked Vector Load and Store
deoptimization operand bundles
lowering strategy
FaultMaps and implicit checks
@llvm.memmove
@llvm.memset
Service
previous
Analysis Passes
-aa-eval: Exhaustive Alias Analysis Precision Evaluator
-basicaa: Basic Alias Analysis (stateless AA impl)
-basiccg: Basic CallGraph Construction
-count-aa: Count Alias Analysis Query Responses
-da: Dependence Analysis
-debug-aa: AA use debugger
-domfrontier: Dominance Frontier Construction
-domtree: Dominator Tree Construction
-dot-callgraph: Print Call Graph to ��dot�� file
-dot-cfg: Print CFG of function to ��dot�� file
-dot-cfg-only: Print CFG of function to ��dot�� file (with no function bodies)
-dot-dom: Print dominance tree of function to ��dot�� file
-dot-dom-only: Print dominance tree of function to ��dot�� file (with no function bodies)
-dot-postdom: Print postdominance tree of function to ��dot�� file
-dot-postdom-only: Print postdominance tree of function to ��dot�� file (with no function bodies)
-globalsmodref-aa: Simple mod/ref analysis for globals
-instcount: Counts the various types of Instructions
-intervals: Interval Partition Construction
-iv-users: Induction Variable Users
-lazy-value-info: Lazy Value Information Analysis
-libcall-aa: LibCall Alias Analysis
-lint: Statically lint-checks LLVM IR
-loops: Natural Loop Information
-memdep: Memory Dependence Analysis
-module-debuginfo: Decodes module-level debug info
-postdomfrontier: Post-Dominance Frontier Construction
-postdomtree: Post-Dominator Tree Construction
-print-alias-sets: Alias Set Printer
-print-callgraph: Print a call graph
-print-callgraph-sccs: Print SCCs of the Call Graph
-print-cfg-sccs: Print SCCs of each function CFG
-print-dom-info: Dominator Info Printer
-print-externalfnconstants: Print external fn callsites passed constants
-print-function: Print function to stderr
-print-module: Print module to stderr
-print-used-types: Find Used Types
-regions: Detect single entry single exit regions
-scalar-evolution: Scalar Evolution Analysis
-scev-aa: ScalarEvolution-based Alias Analysis
-targetdata: Target Data Layout
Transform Passes
-adce: Aggressive Dead Code Elimination
-always-inline: Inliner for always_inline functions
-argpromotion: Promote ��by reference�� arguments to scalars
-bb-vectorize: Basic-Block Vectorization
-block-placement: Profile Guided Basic Block Placement
-break-crit-edges: Break critical edges in CFG
-codegenprepare: Optimize for code generation
-constmerge: Merge Duplicate Global Constants
-constprop: Simple constant propagation
-dce: Dead Code Elimination
-deadargelim: Dead Argument Elimination
-deadtypeelim: Dead Type Elimination
-die: Dead Instruction Elimination
-dse: Dead Store Elimination
-functionattrs: Deduce function attributes
-globaldce: Dead Global Elimination
-globalopt: Global Variable Optimizer
-gvn: Global Value Numbering
-indvars: Canonicalize Induction Variables
-inline: Function Integration/Inlining
-instcombine: Combine redundant instructions
-internalize: Internalize Global Symbols
-ipconstprop: Interprocedural constant propagation
-ipsccp: Interprocedural Sparse Conditional Constant Propagation
-jump-threading: Jump Threading
-lcssa: Loop-Closed SSA Form Pass
-licm: Loop Invariant Code Motion
-loop-deletion: Delete dead loops
-loop-extract: Extract loops into new functions
-loop-extract-single: Extract at most one loop into a new function
-loop-reduce: Loop Strength Reduction
-loop-rotate: Rotate Loops
-loop-simplify: Canonicalize natural loops
-loop-unroll: Unroll loops
-loop-unswitch: Unswitch loops
-loweratomic: Lower atomic intrinsics to non-atomic form
-lowerinvoke: Lower invokes to calls, for unwindless code generators
-lowerswitch: Lower SwitchInsts to branches
-mem2reg: Promote Memory to Register
-memcpyopt: MemCpy Optimization
-mergefunc: Merge Functions
-mergereturn: Unify function exit nodes
-partial-inliner: Partial Inliner
-prune-eh: Remove unused exception handling info
-reassociate: Reassociate expressions
-reg2mem: Demote all values to stack slots
-sroa: Scalar Replacement of Aggregates
-sccp: Sparse Conditional Constant Propagation
-simplifycfg: Simplify the CFG
-sink: Code sinking
-strip: Strip all symbols from a module
-strip-dead-debug-info: Strip debug info for unused symbols
-strip-dead-prototypes: Strip Unused Function Prototypes
-strip-debug-declare: Strip all llvm.dbg.declare intrinsics
-strip-nondebug: Strip all symbols, except dbg symbols, from a module
-tailcallelim: Tail Call Elimination
Utility Passes
-deadarghaX0r: Dead Argument Hacking (BUGPOINT USE ONLY; DO NOT USE)
-extract-blocks: Extract Basic Blocks From Module (for bugpoint use)
-instnamer: Assign names to anonymous instructions
-verify: Module Verifier
-view-cfg: View CFG of function
-view-cfg-only: View CFG of function (with no function bodies)
-view-dom: View dominance tree of function
-view-dom-only: View dominance tree of function (with no function bodies)
-view-postdom: View postdominance tree of function
-view-postdom-only: View postdominance tree of function (with no function bodies)
instcombine
DCE
SCCP
Dead Instruction Elimination
find used types
-functionattrs
mem2reg
Extract loops into new functions
LICM
simplifycfg
indvars
this
bugpoint
Instruction
General Information
The C++ Standard Template Library
Other useful references
Important and useful LLVM APIs
The isa<>, cast<> and dyn_cast<> templates
Passing strings (the StringRef and Twine classes)
The StringRef class
The Twine class
Formatting strings (the formatv function)
Simple formatting
Custom formatting
formatv Examples
Error handling
Programmatic Errors
Recoverable Errors
StringError
Interoperability with std::error_code and ErrorOr
Returning Errors from error handlers
Using ExitOnError to simplify tool code
Using cantFail to simplify safe callsites
Fallible constructors
Propagating and consuming errors based on types
Concatenating Errors with joinErrors
Building fallible iterators and iterator ranges
Passing functions and other callable objects
Function template
The function_ref class template
The DEBUG() macro and -debug option
Fine grained debug info with DEBUG_TYPE and the -debug-only option
The Statistic class & -stats option
Adding debug counters to aid in debugging your code
Viewing graphs while debugging code
Picking the Right Data Structure for a Task
Sequential Containers (std::vector, std::list, etc)
llvm/ADT/ArrayRef.h
Fixed Size Arrays
Heap Allocated Arrays
llvm/ADT/TinyPtrVector.h
llvm/ADT/SmallVector.h
<vector>
<deque>
<list>
llvm/ADT/ilist.h
llvm/ADT/PackedVector.h
ilist_traits
iplist
llvm/ADT/ilist_node.h
Sentinels
Other Sequential Container options
String-like containers
llvm/ADT/StringRef.h
llvm/ADT/Twine.h
llvm/ADT/SmallString.h
std::string
Set-Like Containers (std::set, SmallSet, SetVector, etc)
A sorted ��vector��
llvm/ADT/SmallSet.h
llvm/ADT/SmallPtrSet.h
llvm/ADT/StringSet.h
llvm/ADT/DenseSet.h
llvm/ADT/SparseSet.h
llvm/ADT/SparseMultiSet.h
llvm/ADT/FoldingSet.h
<set>
llvm/ADT/SetVector.h
llvm/ADT/UniqueVector.h
llvm/ADT/ImmutableSet.h
Other Set-Like Container Options
Map-Like Containers (std::map, DenseMap, etc)
llvm/ADT/StringMap.h
llvm/ADT/IndexedMap.h
llvm/ADT/DenseMap.h
llvm/IR/ValueMap.h
llvm/ADT/IntervalMap.h
<map>
llvm/ADT/MapVector.h
llvm/ADT/IntEqClasses.h
llvm/ADT/ImmutableMap.h
Other Map-Like Container Options
Bit storage containers (BitVector, SparseBitVector)
BitVector
SmallBitVector
SparseBitVector
Debugging
Helpful Hints for Common Operations
Basic Inspection and Traversal Routines
Iterating over the BasicBlock in a Function
Iterating over the Instruction in a BasicBlock
Iterating over the Instruction in a Function
Turning an iterator into a class pointer (and vice-versa)
Finding call sites: a slightly more complex example
Treating calls and invokes the same way
Iterating over def-use & use-def chains
Iterating over predecessors & successors of blocks
Making simple changes
Creating and inserting new Instructions
Deleting Instructions
Replacing an Instruction with another Value
Replacing individual instructions
Replacing multiple uses of Users and Values
Deleting GlobalVariables
How to Create Types
Threads and LLVM
Ending Execution with llvm_shutdown()
Lazy Initialization with ManagedStatic
Achieving Isolation with LLVMContext
Threads and the JIT
Advanced Topics
The ValueSymbolTable class
The User and owned Use classes�� memory layout
Interaction and relationship between User and Use objects
The waymarking algorithm
Reference implementation
Tagging considerations
Designing Type Hiercharies and Polymorphic Interfaces
ABI Breaking Checks
The Core LLVM Class Hierarchy Reference
The Type class and Derived Types
Important Public Methods
Important Derived Types
The Module class
Important Public Members of the Module class
The Value class
Important Public Members of the Value class
The User class
Important Public Members of the User class
The Instruction class
Important Subclasses of the Instruction class
Important Public Members of the Instruction class
The Constant class and subclasses
Important Subclasses of Constant
The GlobalValue class
Important Public Members of the GlobalValue class
The Function class
Important Public Members of the Function
The GlobalVariable class
Important Public Members of the GlobalVariable class
The BasicBlock class
Important Public Members of the BasicBlock class
The Argument class
LLVM Coding Standards
How to set up LLVM-style RTTI for your class hierarchy
here
ExitOnError
cantFail
BasicBlocks
MachineBasicBlocks
Instruction SelectionDAGs
map-like
set-like
sequential
string
bit
SmallVector
vector
Passing Strings
ArrayRef
std::set
SmallPtrSet
StringMap<char>
SmallSet
DenseMap
SetVector
sorted vectors for set-like containers
Core LLVM Class Hierarchy Reference
Kaleidoscope: Code generation to LLVM IR
Function
Module
Value
isa and dyn_cast
GlobalVariable
SymbolTable
Type
Constant
Argument
Instruction
User
STL
precaution above
BinaryOperator
CmpInst
ICmpInst
FCmpInst
GlobalValue
FunctionType
LLVM Language Reference
TerminatorInst
Sample
Documentation
1. Kaleidoscope: Tutorial Introduction and the Lexer
2. Kaleidoscope: Implementing a Parser and AST
4. Kaleidoscope: Adding JIT and Optimizer Support
5. Kaleidoscope: Extending the Language: Control Flow
6. Kaleidoscope: Extending the Language: User-defined Operators
7. Kaleidoscope: Extending the Language: Mutable Variables
8. Kaleidoscope: Compiling to Object Code
9. Kaleidoscope: Adding Debug Information
10. Kaleidoscope: Conclusion and other useful LLVM tidbits
3. Kaleidoscope: Code generation to LLVM IR
8. Kaleidoscope: Conclusion and other useful LLVM tidbits
1. Building a JIT: Starting out with KaleidoscopeJIT
2. Building a JIT: Adding Optimizations �C An introduction to ORC Layers
3. Building a JIT: Per-function Lazy Compilation
4. Building a JIT: Extreme Laziness - Using Compile Callbacks to JIT from ASTs
5. Building a JIT: Remote-JITing �C Process Isolation and Laziness at a Distance
Command
llvm-as - LLVM assembler
llvm-dis - LLVM disassembler
opt - LLVM optimizer
llc - LLVM static compiler
lli - directly execute programs from LLVM bitcode
llvm-link - LLVM bitcode linker
llvm-ar - LLVM archiver
llvm-lib - LLVM lib.exe compatible library tool
llvm-nm - list LLVM bitcode and object file��s symbol table
llvm-config - Print LLVM compilation options
llvm-diff - LLVM structural ��diff��
llvm-cov - emit coverage information
llvm-profdata - Profile data tool
llvm-stress - generate random .ll files
llvm-symbolizer - convert addresses into source code locations
llvm-dwarfdump - dump and verify DWARF debug information
dsymutil - manipulate archived DWARF debug symbol files
bugpoint - automatic test case reduction tool
llvm-extract - extract a function from an LLVM module
llvm-bcanalyzer - LLVM bitcode analyzer
FileCheck - Flexible pattern matching file verifier
tblgen - Target Description To C++ Code Generator
lit - LLVM Integrated Tester
llvm-build - LLVM Project Build Utility
llvm-pdbutil - PDB File forensics and diagnostics
llvm-readobj - LLVM Object Reader
Guide
Overview
Getting Started Quickly (A Summary)
Requirements
Hardware
Software
Host C++ Toolchain, both Compiler and Standard Library
Getting a Modern Host C++ Toolchain
Getting Started with LLVM
Terminology and Notation
Unpacking the LLVM Archives
Checkout LLVM from Subversion
Git Mirror
Sending patches with Git
For developers to work with git-svn
For developers to work with a git monorepo
Local LLVM Configuration
Compiling the LLVM Suite Source Code
Cross-Compiling LLVM
The Location of LLVM Object Files
Optional Configuration Items
Directory Layout
llvm/examples
llvm/include
llvm/lib
llvm/projects
llvm/test
test-suite
llvm/tools
llvm/utils
An Example Using the LLVM Tool Chain
Example with clang
Common Problems
Links
below
general layout
simple example
Developer Policy
check here
How To Cross-Compile Clang/LLVM using Clang/LLVM
tools
Testing Guide
Command Guide
HowToSubmitABug.html
Frequently AskedQuestions