llc option level pass
Get the pass name¶
Bash
llc -O0 empty.ll -debug-pass=Structure > O0.log 2>&1
llc -O1 empty.ll -debug-pass=Structure > O1.log 2>&1
llc -O2 empty.ll -debug-pass=Structure > O2.log 2>&1
llc -O3 empty.ll -debug-pass=Structure > O3.log 2>&1
/gsa/tlbgsa/projects/x/xlcdl/shkzhang/llc_ppc_pipeline/O0.log
/gsa/tlbgsa/projects/x/xlcdl/shkzhang/llc_ppc_pipeline/O1.log
/gsa/tlbgsa/projects/x/xlcdl/shkzhang/llc_ppc_pipeline/O2.log
/gsa/tlbgsa/projects/x/xlcdl/shkzhang/llc_ppc_pipeline/O3.log
O3.log¶
这里的选项如-targetlibinfo,可以在 --print-after=-targetlibinfo
GAS
Pass Arguments: -targetlibinfo -targetpassconfig -machinemoduleinfo -tti -assumption-cache-tracker -tbaa -scoped-noalias -profile-summary-info -collector-metadata -machine-branch-prob -pre-isel-intrinsic-lowering -bool-ret-to-int -atomic-expand -ppc-lower-massv-entries -domtree -loops -scalar-evolution -separate-const-offset-from-gep -early-cse -basicaa -aa -memoryssa -loop-simplify -lcssa-verification -lcssa -scalar-evolution -licm -verify -iv-users -loop-reduce -basicaa -aa -mergeicmps -loops -lazy-branch-prob -lazy-block-freq -expandmemcmp -gc-lowering -shadow-stack-gc-lowering -lower-constant-intrinsics -unreachableblockelim -domtree -loops -postdomtree -branch-prob -block-freq -consthoist -partially-inline-libcalls -post-inline-ee-instrument -scalarize-masked-mem-intrin -expand-reductions -domtree -loops -codegenprepare -rewrite-symbols -domtree -dwarfehprepare -domtree -loops -scalar-evolution -ppc-loop-instr-form-prep -scalar-evolution -lazy-branch-prob -lazy-block-freq -opt-remark-emitter -hardware-loops -safe-stack -stack-protector -verify -domtree -basicaa -aa -loops -postdomtree -branch-prob -lazy-branch-prob -lazy-block-freq -amdgpu-isel -machinedomtree -ppc-ctr-loops-verify -ppc-vsx-copy -finalize-isel -machineverifier -lazy-machine-block-freq -early-tailduplication -machineverifier -opt-phis -machineverifier -slotindexes -stack-coloring -machineverifier -localstackalloc -machineverifier -dead-mi-elimination -machineverifier -machinedomtree -machine-loops -machine-trace-metrics -early-ifcvt -machineverifier -lazy-machine-block-freq -machine-combiner -machineverifier -early-machinelicm -machineverifier -machinedomtree -machine-block-freq -machine-cse -machineverifier -machinepostdomtree -machine-sink -machineverifier -peephole-opt -machineverifier -dead-mi-elimination -machineverifier -ppc-vsx-swaps -machineverifier -machinedomtree -ppc-reduce-cr-ops -machineverifier -machinedomtree -machinepostdomtree -machine-loops -machine-block-freq -ppc-mi-peepholes -machineverifier -dead-mi-elimination -machineverifier -ppc-toc-reg-deps -machineverifier -machinedomtree -machine-loops -slotindexes -liveintervals -lazy-machine-block-freq -machine-opt-remark-emitter -pipeliner -machineverifier -detect-dead-lanes -machineverifier -processimpdefs -machineverifier -unreachable-mbb-elimination -livevars -machineverifier -machinedomtree -machine-loops -machineverifier -phi-node-elimination -machineverifier -twoaddressinstruction -machineverifier -slotindexes -liveintervals -simple-register-coalescing -machineverifier -rename-independent-subregs -machineverifier -machine-scheduler -machineverifier -ppc-vsx-fma-mutate -machineverifier -machine-loops -machine-block-freq -livedebugvars -livestacks -virtregmap -liveregmatrix -edge-bundles -spill-code-placement -lazy-machine-block-freq -machine-opt-remark-emitter -greedy -machineverifier -virtregrewriter -machineverifier -stack-slot-coloring -machineverifier -machine-cp -machineverifier -machinelicm -machineverifier -fixup-statepoint-caller-saved -machineverifier -postra-machine-sink -machineverifier -machine-block-freq -machinedomtree -machinepostdomtree -lazy-machine-block-freq -machine-opt-remark-emitter -shrink-wrap -machineverifier -prologepilog -machineverifier -branch-folder -machineverifier -lazy-machine-block-freq -tailduplication -machineverifier -machine-cp -machineverifier -postrapseudos -machineverifier -machinedomtree -machine-loops -machine-block-freq -if-converter -machineverifier -ppc-qpx-load-splat -machineverifier -machinedomtree -machine-loops -postmisched -machineverifier -gc-analysis -machineverifier -machine-block-freq -machinepostdomtree -block-placement -machineverifier -fentry-insert -machineverifier -xray-instrumentation -machineverifier -patchable-function -machineverifier -ppc-pre-emit-peephole -machineverifier -ppc-expand-isel -machineverifier -ppc-early-ret -machineverifier -ppc-branch-select -machineverifier -funclet-layout -machineverifier -stackmap-liveness -machineverifier -livedebugvalues -machineverifier -lazy-machine-block-freq -machine-opt-remark-emitter
Target Library Information
Target Pass Configuration
Machine Module Information
Target Transform Information
Assumption Cache Tracker
Type-Based Alias Analysis
Scoped NoAlias Alias Analysis
Profile summary info
Create Garbage Collector Module Metadata
Machine Branch Probability Analysis
ModulePass Manager
Pre-ISel Intrinsic Lowering
FunctionPass Manager
Convert i1 constants to i32/i64 if they are returned
Expand Atomic instructions
PPC Lower MASS Entries
FunctionPass Manager
Dominator Tree Construction
Natural Loop Information
Scalar Evolution Analysis
Split GEPs to a variadic base and a constant offset for better CSE
Early CSE
Basic Alias Analysis (stateless AA impl)
Function Alias Analysis Results
Memory SSA
Canonicalize natural loops
LCSSA Verifier
Loop-Closed SSA Form Pass
Scalar Evolution Analysis
Loop Pass Manager
Loop Invariant Code Motion
Module Verifier
Loop Pass Manager
Induction Variable Users
Loop Strength Reduction
Basic Alias Analysis (stateless AA impl)
Function Alias Analysis Results
Merge contiguous icmps into a memcmp
Natural Loop Information
Lazy Branch Probability Analysis
Lazy Block Frequency Analysis
Expand memcmp() to load/stores
Lower Garbage Collection Instructions
Shadow Stack GC Lowering
Lower constant intrinsics
Remove unreachable blocks from the CFG
Dominator Tree Construction
Natural Loop Information
Post-Dominator Tree Construction
Branch Probability Analysis
Block Frequency Analysis
Constant Hoisting
Partially inline calls to library functions
Instrument function entry/exit with calls to e.g. mcount() (post inlining)
Scalarize Masked Memory Intrinsics
Expand reduction intrinsics
Dominator Tree Construction
Natural Loop Information
CodeGen Prepare
Rewrite Symbols
FunctionPass Manager
Dominator Tree Construction
Exception handling preparation
Dominator Tree Construction
Natural Loop Information
Scalar Evolution Analysis
Prepare loop for ppc preferred instruction forms
Scalar Evolution Analysis
Lazy Branch Probability Analysis
Lazy Block Frequency Analysis
Optimization Remark Emitter
Hardware Loop Insertion
Safe Stack instrumentation pass
Insert stack protectors
Module Verifier
Dominator Tree Construction
Basic Alias Analysis (stateless AA impl)
Function Alias Analysis Results
Natural Loop Information
Post-Dominator Tree Construction
Branch Probability Analysis
Lazy Branch Probability Analysis
Lazy Block Frequency Analysis
*****************After Instruction Selection**************
PowerPC DAG->DAG Pattern Instruction Selection
MachineDominator Tree Construction
PowerPC CTR Loops Verify
PowerPC VSX Copy Legalization
Finalize ISel and expand pseudo-instructions
Verify generated machine code
Lazy Machine Block Frequency Analysis
Early Tail Duplication
Verify generated machine code
Optimize machine instruction PHIs
Verify generated machine code
Slot index numbering
Merge disjoint stack slots
Verify generated machine code
Local Stack Slot Allocation
Verify generated machine code
Remove dead machine instructions
Verify generated machine code
MachineDominator Tree Construction
Machine Natural Loop Construction
Machine Trace Metrics
Early If-Conversion
Verify generated machine code
Lazy Machine Block Frequency Analysis
Machine InstCombiner
Verify generated machine code
Early Machine Loop Invariant Code Motion
Verify generated machine code
MachineDominator Tree Construction
Machine Block Frequency Analysis
Machine Common Subexpression Elimination
Verify generated machine code
MachinePostDominator Tree Construction
Machine code sinking
Verify generated machine code
Peephole Optimizations
Verify generated machine code
Remove dead machine instructions
Verify generated machine code
PowerPC VSX Swap Removal
Verify generated machine code
MachineDominator Tree Construction
PowerPC Reduce CR logical Operation
Verify generated machine code
MachineDominator Tree Construction
MachinePostDominator Tree Construction
Machine Natural Loop Construction
Machine Block Frequency Analysis
PowerPC MI Peephole Optimization
Verify generated machine code
Remove dead machine instructions
Verify generated machine code
PowerPC TOC Register Dependencies
Verify generated machine code
MachineDominator Tree Construction
Machine Natural Loop Construction
Slot index numbering
Live Interval Analysis
Lazy Machine Block Frequency Analysis
Machine Optimization Remark Emitter
Modulo Software Pipelining
Verify generated machine code
Detect Dead Lanes
Verify generated machine code
Process Implicit Definitions
Verify generated machine code
Remove unreachable machine basic blocks
Live Variable Analysis
Verify generated machine code
MachineDominator Tree Construction
Machine Natural Loop Construction
Verify generated machine code
Eliminate PHI nodes for register allocation
******************After Eliminate PHI nonSSA****************
Verify generated machine code
Two-Address instruction pass
Verify generated machine code
Slot index numbering
Live Interval Analysis
Simple Register Coalescing
Verify generated machine code
Rename Disconnected Subregister Components
Verify generated machine code
Machine Instruction Scheduler
Verify generated machine code
PowerPC VSX FMA Mutation
Verify generated machine code
Machine Natural Loop Construction
Machine Block Frequency Analysis
Debug Variable Analysis
Live Stack Slot Analysis
Virtual Register Map
Live Register Matrix
Bundle Machine CFG Edges
Spill Code Placement Analysis
Lazy Machine Block Frequency Analysis
Machine Optimization Remark Emitter
Greedy Register Allocator
************** After Register Allocator*****************
Verify generated machine code
Virtual Register Rewriter
Verify generated machine code
Stack Slot Coloring
Verify generated machine code
Machine Copy Propagation Pass
Verify generated machine code
Machine Loop Invariant Code Motion
Verify generated machine code
Fixup Statepoint Caller Saved
Verify generated machine code
PostRA Machine Sink
Verify generated machine code
Machine Block Frequency Analysis
MachineDominator Tree Construction
MachinePostDominator Tree Construction
Lazy Machine Block Frequency Analysis
Machine Optimization Remark Emitter
Shrink Wrapping analysis
Verify generated machine code
Prologue/Epilogue Insertion & Frame Finalization
Verify generated machine code
Control Flow Optimizer
Verify generated machine code
Lazy Machine Block Frequency Analysis
Tail Duplication
Verify generated machine code
Machine Copy Propagation Pass
Verify generated machine code
Post-RA pseudo instruction expansion pass
Verify generated machine code
MachineDominator Tree Construction
Machine Natural Loop Construction
Machine Block Frequency Analysis
If Converter
Verify generated machine code
PowerPC QPX Load Splat Simplification
Verify generated machine code
MachineDominator Tree Construction
Machine Natural Loop Construction
PostRA Machine Instruction Scheduler
Verify generated machine code
Analyze Machine Code For Garbage Collection
Verify generated machine code
Machine Block Frequency Analysis
MachinePostDominator Tree Construction
Branch Probability Basic Block Placement
Verify generated machine code
Insert fentry calls
Verify generated machine code
Insert XRay ops
Verify generated machine code
Implement the 'patchable-function' attribute
Verify generated machine code
PowerPC Pre-Emit Peephole
Verify generated machine code
PowerPC Expand ISEL Generation
Verify generated machine code
PowerPC Early-Return Creation
Verify generated machine code
PowerPC Branch Selector
Verify generated machine code
Contiguously Lay Out Funclets
Verify generated machine code
StackMap Liveness Analysis
Verify generated machine code
Live DEBUG_VALUE analysis
Verify generated machine code
Lazy Machine Block Frequency Analysis
Machine Optimization Remark Emitter
Linux PPC Assembly Printer
Free MachineFunction