| ; RUN: llc -mtriple=x86_64-- -O0 -debug-pass=Structure < %s -o /dev/null 2>&1 | FileCheck %s | |
| ; REQUIRES: asserts | |
| ; CHECK-LABEL: Pass Arguments: | |
| ; CHECK-NEXT: Target Library Information | |
| ; CHECK-NEXT: Target Pass Configuration | |
| ; CHECK-NEXT: Machine Module Information | |
| ; CHECK-NEXT: Target Transform Information | |
| ; CHECK-NEXT: Type-Based Alias Analysis | |
| ; CHECK-NEXT: Scoped NoAlias Alias Analysis | |
| ; CHECK-NEXT: Assumption Cache Tracker | |
| ; CHECK-NEXT: Create Garbage Collector Module Metadata | |
| ; CHECK-NEXT: Machine Branch Probability Analysis | |
| ; CHECK-NEXT: ModulePass Manager | |
| ; CHECK-NEXT: Pre-ISel Intrinsic Lowering | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Expand Atomic instructions | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) | |
| ; CHECK-NEXT: Module Verifier | |
| ; CHECK-NEXT: Lower Garbage Collection Instructions | |
| ; CHECK-NEXT: Shadow Stack GC Lowering | |
| ; CHECK-NEXT: Remove unreachable blocks from the CFG | |
| ; CHECK-NEXT: Instrument function entry/exit with calls to e.g. mcount() (post inlining) | |
| ; CHECK-NEXT: Scalarize Masked Memory Intrinsics | |
| ; CHECK-NEXT: Expand reduction intrinsics | |
| ; CHECK-NEXT: Expand indirectbr instructions | |
| ; CHECK-NEXT: Rewrite Symbols | |
| ; CHECK-NEXT: FunctionPass Manager | |
| ; CHECK-NEXT: Dominator Tree Construction | |
| ; CHECK-NEXT: Exception handling preparation | |
| ; CHECK-NEXT: Safe Stack instrumentation pass | |
| ; CHECK-NEXT: Insert stack protectors | |
| ; CHECK-NEXT: Module Verifier | |
| ; CHECK-NEXT: X86 DAG->DAG Instruction Selection | |
| ; CHECK-NEXT: X86 PIC Global Base Reg Initialization | |
| ; CHECK-NEXT: Expand ISel Pseudo-instructions | |
| ; CHECK-NEXT: Local Stack Slot Allocation | |
| ; CHECK-NEXT: MachineDominator Tree Construction | |
| ; CHECK-NEXT: X86 EFLAGS copy lowering | |
| ; CHECK-NEXT: X86 WinAlloca Expander | |
| ; CHECK-NEXT: Eliminate PHI nodes for register allocation | |
| ; CHECK-NEXT: Two-Address instruction pass | |
| ; CHECK-NEXT: Fast Register Allocator | |
| ; CHECK-NEXT: Bundle Machine CFG Edges | |
| ; CHECK-NEXT: X86 FP Stackifier | |
| ; CHECK-NEXT: Lazy Machine Block Frequency Analysis | |
| ; CHECK-NEXT: Machine Optimization Remark Emitter | |
| ; CHECK-NEXT: Prologue/Epilogue Insertion & Frame Finalization | |
| ; CHECK-NEXT: Post-RA pseudo instruction expansion pass | |
| ; CHECK-NEXT: X86 pseudo instruction expansion pass | |
| ; CHECK-NEXT: Analyze Machine Code For Garbage Collection | |
| ; CHECK-NEXT: Shadow Call Stack | |
| ; CHECK-NEXT: X86 Indirect Branch Tracking | |
| ; CHECK-NEXT: X86 vzeroupper inserter | |
| ; CHECK-NEXT: Contiguously Lay Out Funclets | |
| ; CHECK-NEXT: StackMap Liveness Analysis | |
| ; CHECK-NEXT: Live DEBUG_VALUE analysis | |
| ; CHECK-NEXT: Insert fentry calls | |
| ; CHECK-NEXT: Insert XRay ops | |
| ; CHECK-NEXT: Implement the 'patchable-function' attribute | |
| ; CHECK-NEXT: X86 Retpoline Thunks | |
| ; CHECK-NEXT: Check CFA info and insert CFI instructions if needed | |
| ; CHECK-NEXT: Lazy Machine Block Frequency Analysis | |
| ; CHECK-NEXT: Machine Optimization Remark Emitter | |
| ; CHECK-NEXT: X86 Assembly Printer | |
| ; CHECK-NEXT: Free MachineFunction | |
| define void @f() { | |
| ret void | |
| } |