1; RUN: llc -mtriple=x86_64-- -O3 -debug-pass=Structure < %s -o /dev/null 2>&1 | FileCheck %s 2 3; REQUIRES: asserts 4 5; CHECK-LABEL: Pass Arguments: 6; CHECK-NEXT: Target Library Information 7; CHECK-NEXT: Target Pass Configuration 8; CHECK-NEXT: Machine Module Information 9; CHECK-NEXT: Target Transform Information 10; CHECK-NEXT: Type-Based Alias Analysis 11; CHECK-NEXT: Scoped NoAlias Alias Analysis 12; CHECK-NEXT: Assumption Cache Tracker 13; CHECK-NEXT: Create Garbage Collector Module Metadata 14; CHECK-NEXT: Profile summary info 15; CHECK-NEXT: Machine Branch Probability Analysis 16; CHECK-NEXT: ModulePass Manager 17; CHECK-NEXT: Pre-ISel Intrinsic Lowering 18; CHECK-NEXT: FunctionPass Manager 19; CHECK-NEXT: Expand Atomic instructions 20; CHECK-NEXT: Dominator Tree Construction 21; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 22; CHECK-NEXT: Module Verifier 23; CHECK-NEXT: Natural Loop Information 24; CHECK-NEXT: Canonicalize natural loops 25; CHECK-NEXT: Scalar Evolution Analysis 26; CHECK-NEXT: Loop Pass Manager 27; CHECK-NEXT: Induction Variable Users 28; CHECK-NEXT: Loop Strength Reduction 29; CHECK-NEXT: Merge contiguous icmps into a memcmp 30; CHECK-NEXT: Expand memcmp() to load/stores 31; CHECK-NEXT: Lower Garbage Collection Instructions 32; CHECK-NEXT: Shadow Stack GC Lowering 33; CHECK-NEXT: Remove unreachable blocks from the CFG 34; CHECK-NEXT: Dominator Tree Construction 35; CHECK-NEXT: Natural Loop Information 36; CHECK-NEXT: Branch Probability Analysis 37; CHECK-NEXT: Block Frequency Analysis 38; CHECK-NEXT: Constant Hoisting 39; CHECK-NEXT: Partially inline calls to library functions 40; CHECK-NEXT: Instrument function entry/exit with calls to e.g. mcount() (post inlining) 41; CHECK-NEXT: Scalarize Masked Memory Intrinsics 42; CHECK-NEXT: Expand reduction intrinsics 43; CHECK-NEXT: Dominator Tree Construction 44; CHECK-NEXT: Interleaved Access Pass 45; CHECK-NEXT: Expand indirectbr instructions 46; CHECK-NEXT: Dominator Tree Construction 47; CHECK-NEXT: Natural Loop Information 48; CHECK-NEXT: CodeGen Prepare 49; CHECK-NEXT: Rewrite Symbols 50; CHECK-NEXT: FunctionPass Manager 51; CHECK-NEXT: Dominator Tree Construction 52; CHECK-NEXT: Exception handling preparation 53; CHECK-NEXT: Safe Stack instrumentation pass 54; CHECK-NEXT: Insert stack protectors 55; CHECK-NEXT: Module Verifier 56; CHECK-NEXT: Dominator Tree Construction 57; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 58; CHECK-NEXT: Function Alias Analysis Results 59; CHECK-NEXT: Natural Loop Information 60; CHECK-NEXT: Branch Probability Analysis 61; CHECK-NEXT: X86 DAG->DAG Instruction Selection 62; CHECK-NEXT: MachineDominator Tree Construction 63; CHECK-NEXT: Local Dynamic TLS Access Clean-up 64; CHECK-NEXT: X86 PIC Global Base Reg Initialization 65; CHECK-NEXT: Expand ISel Pseudo-instructions 66; CHECK-NEXT: X86 Domain Reassignment Pass 67; CHECK-NEXT: Early Tail Duplication 68; CHECK-NEXT: Optimize machine instruction PHIs 69; CHECK-NEXT: Slot index numbering 70; CHECK-NEXT: Merge disjoint stack slots 71; CHECK-NEXT: Local Stack Slot Allocation 72; CHECK-NEXT: Remove dead machine instructions 73; CHECK-NEXT: MachineDominator Tree Construction 74; CHECK-NEXT: Machine Natural Loop Construction 75; CHECK-NEXT: Machine Trace Metrics 76; CHECK-NEXT: Early If-Conversion 77; CHECK-NEXT: Machine InstCombiner 78; CHECK-NEXT: X86 cmov Conversion 79; CHECK-NEXT: MachineDominator Tree Construction 80; CHECK-NEXT: Machine Natural Loop Construction 81; CHECK-NEXT: Early Machine Loop Invariant Code Motion 82; CHECK-NEXT: Machine Common Subexpression Elimination 83; CHECK-NEXT: MachinePostDominator Tree Construction 84; CHECK-NEXT: Machine Block Frequency Analysis 85; CHECK-NEXT: Machine code sinking 86; CHECK-NEXT: Peephole Optimizations 87; CHECK-NEXT: Remove dead machine instructions 88; CHECK-NEXT: Live Range Shrink 89; CHECK-NEXT: X86 Fixup SetCC 90; CHECK-NEXT: X86 LEA Optimize 91; CHECK-NEXT: X86 Optimize Call Frame 92; CHECK-NEXT: X86 Avoid Store Forwarding Block 93; CHECK-NEXT: MachineDominator Tree Construction 94; CHECK-NEXT: X86 EFLAGS copy lowering 95; CHECK-NEXT: X86 WinAlloca Expander 96; CHECK-NEXT: Detect Dead Lanes 97; CHECK-NEXT: Process Implicit Definitions 98; CHECK-NEXT: Remove unreachable machine basic blocks 99; CHECK-NEXT: Live Variable Analysis 100; CHECK-NEXT: MachineDominator Tree Construction 101; CHECK-NEXT: Machine Natural Loop Construction 102; CHECK-NEXT: Eliminate PHI nodes for register allocation 103; CHECK-NEXT: Two-Address instruction pass 104; CHECK-NEXT: Slot index numbering 105; CHECK-NEXT: Live Interval Analysis 106; CHECK-NEXT: Simple Register Coalescing 107; CHECK-NEXT: Rename Disconnected Subregister Components 108; CHECK-NEXT: Machine Instruction Scheduler 109; CHECK-NEXT: Machine Block Frequency Analysis 110; CHECK-NEXT: Debug Variable Analysis 111; CHECK-NEXT: Live Stack Slot Analysis 112; CHECK-NEXT: Virtual Register Map 113; CHECK-NEXT: Live Register Matrix 114; CHECK-NEXT: Bundle Machine CFG Edges 115; CHECK-NEXT: Spill Code Placement Analysis 116; CHECK-NEXT: Lazy Machine Block Frequency Analysis 117; CHECK-NEXT: Machine Optimization Remark Emitter 118; CHECK-NEXT: Greedy Register Allocator 119; CHECK-NEXT: Virtual Register Rewriter 120; CHECK-NEXT: Stack Slot Coloring 121; CHECK-NEXT: Machine Copy Propagation Pass 122; CHECK-NEXT: Machine Loop Invariant Code Motion 123; CHECK-NEXT: Bundle Machine CFG Edges 124; CHECK-NEXT: X86 FP Stackifier 125; CHECK-NEXT: PostRA Machine Sink 126; CHECK-NEXT: Machine Block Frequency Analysis 127; CHECK-NEXT: MachinePostDominator Tree Construction 128; CHECK-NEXT: Lazy Machine Block Frequency Analysis 129; CHECK-NEXT: Machine Optimization Remark Emitter 130; CHECK-NEXT: Shrink Wrapping analysis 131; CHECK-NEXT: Prologue/Epilogue Insertion & Frame Finalization 132; CHECK-NEXT: Control Flow Optimizer 133; CHECK-NEXT: Tail Duplication 134; CHECK-NEXT: Machine Copy Propagation Pass 135; CHECK-NEXT: Post-RA pseudo instruction expansion pass 136; CHECK-NEXT: X86 pseudo instruction expansion pass 137; CHECK-NEXT: MachineDominator Tree Construction 138; CHECK-NEXT: Machine Natural Loop Construction 139; CHECK-NEXT: Post RA top-down list latency scheduler 140; CHECK-NEXT: Analyze Machine Code For Garbage Collection 141; CHECK-NEXT: Machine Block Frequency Analysis 142; CHECK-NEXT: MachinePostDominator Tree Construction 143; CHECK-NEXT: Branch Probability Basic Block Placement 144; CHECK-NEXT: ReachingDefAnalysis 145; CHECK-NEXT: X86 Execution Dependency Fix 146; CHECK-NEXT: BreakFalseDeps 147; CHECK-NEXT: Shadow Call Stack 148; CHECK-NEXT: X86 Indirect Branch Tracking 149; CHECK-NEXT: X86 vzeroupper inserter 150; CHECK-NEXT: MachineDominator Tree Construction 151; CHECK-NEXT: Machine Natural Loop Construction 152; CHECK-NEXT: X86 Byte/Word Instruction Fixup 153; CHECK-NEXT: X86 Atom pad short functions 154; CHECK-NEXT: X86 LEA Fixup 155; CHECK-NEXT: Compressing EVEX instrs to VEX encoding when possible 156; CHECK-NEXT: Contiguously Lay Out Funclets 157; CHECK-NEXT: StackMap Liveness Analysis 158; CHECK-NEXT: Live DEBUG_VALUE analysis 159; CHECK-NEXT: Insert fentry calls 160; CHECK-NEXT: Insert XRay ops 161; CHECK-NEXT: Implement the 'patchable-function' attribute 162; CHECK-NEXT: X86 Retpoline Thunks 163; CHECK-NEXT: Check CFA info and insert CFI instructions if needed 164; CHECK-NEXT: Lazy Machine Block Frequency Analysis 165; CHECK-NEXT: Machine Optimization Remark Emitter 166; CHECK-NEXT: X86 Assembly Printer 167; CHECK-NEXT: Free MachineFunction 168 169define void @f() { 170 ret void 171} 172