xref: /llvm-project/llvm/test/CodeGen/X86/O0-pipeline.ll (revision 3d08ade7bd32f0296e0ca3a13640cc95fa89229a)
1; When EXPENSIVE_CHECKS are enabled, the machine verifier appears between each
2; pass. Ignore it with 'grep -v'.
3; RUN: llc -mtriple=x86_64-- -O0 -debug-pass=Structure < %s -o /dev/null 2>&1 \
4; RUN:   | grep -v 'Verify generated machine code' | FileCheck %s
5
6; REQUIRES: asserts
7
8; CHECK-LABEL: Pass Arguments:
9; CHECK-NEXT: Target Library Information
10; CHECK-NEXT: Target Pass Configuration
11; CHECK-NEXT: Machine Module Information
12; CHECK-NEXT: Target Transform Information
13; CHECK-NEXT: Create Garbage Collector Module Metadata
14; CHECK-NEXT: Assumption Cache Tracker
15; CHECK-NEXT: Profile summary info
16; CHECK-NEXT: Machine Branch Probability Analysis
17; CHECK-NEXT:   ModulePass Manager
18; CHECK-NEXT:     Pre-ISel Intrinsic Lowering
19; CHECK-NEXT:     FunctionPass Manager
20; CHECK-NEXT:       Expand large div/rem
21; CHECK-NEXT:       Expand large fp convert
22; CHECK-NEXT:       Expand Atomic instructions
23; CHECK-NEXT:       Lower AMX intrinsics
24; CHECK-NEXT:       Lower AMX type for load/store
25; CHECK-NEXT:       Module Verifier
26; CHECK-NEXT:       Lower Garbage Collection Instructions
27; CHECK-NEXT:       Shadow Stack GC Lowering
28; CHECK-NEXT:       Remove unreachable blocks from the CFG
29; CHECK-NEXT:       Instrument function entry/exit with calls to e.g. mcount() (post inlining)
30; CHECK-NEXT:       Scalarize Masked Memory Intrinsics
31; CHECK-NEXT:       Expand reduction intrinsics
32; CHECK-NEXT:       Expand indirectbr instructions
33; CHECK-NEXT:       Exception handling preparation
34; CHECK-NEXT:       Prepare callbr
35; CHECK-NEXT:       Safe Stack instrumentation pass
36; CHECK-NEXT:       Insert stack protectors
37; CHECK-NEXT:       Module Verifier
38; CHECK-NEXT:       Assignment Tracking Analysis
39; CHECK-NEXT:       X86 DAG->DAG Instruction Selection
40; CHECK-NEXT:       X86 PIC Global Base Reg Initialization
41; CHECK-NEXT:       Argument Stack Rebase
42; CHECK-NEXT:       Finalize ISel and expand pseudo-instructions
43; CHECK-NEXT:       Local Stack Slot Allocation
44; CHECK-NEXT:       X86 speculative load hardening
45; CHECK-NEXT:       X86 EFLAGS copy lowering
46; CHECK-NEXT:       X86 DynAlloca Expander
47; CHECK-NEXT:       Fast Tile Register Preconfigure
48; CHECK-NEXT:       Eliminate PHI nodes for register allocation
49; CHECK-NEXT:       Two-Address instruction pass
50; CHECK-NEXT:       Fast Register Allocator
51; CHECK-NEXT:       Fast Tile Register Configure
52; CHECK-NEXT:       X86 Lower Tile Copy
53; CHECK-NEXT:       Bundle Machine CFG Edges
54; CHECK-NEXT:       X86 FP Stackifier
55; CHECK-NEXT:       Remove Redundant DEBUG_VALUE analysis
56; CHECK-NEXT:       Fixup Statepoint Caller Saved
57; CHECK-NEXT:       Lazy Machine Block Frequency Analysis
58; CHECK-NEXT:       Machine Optimization Remark Emitter
59; CHECK-NEXT:       Prologue/Epilogue Insertion & Frame Finalization
60; CHECK-NEXT:       Post-RA pseudo instruction expansion pass
61; CHECK-NEXT:       X86 pseudo instruction expansion pass
62; CHECK-NEXT:       Insert KCFI indirect call checks
63; CHECK-NEXT:       Analyze Machine Code For Garbage Collection
64; CHECK-NEXT:       Insert fentry calls
65; CHECK-NEXT:       Insert XRay ops
66; CHECK-NEXT:       Implement the 'patchable-function' attribute
67; CHECK-NEXT:       X86 Indirect Branch Tracking
68; CHECK-NEXT:       X86 vzeroupper inserter
69; CHECK-NEXT:       Compressing EVEX instrs when possible
70; CHECK-NEXT:       X86 Discriminate Memory Operands
71; CHECK-NEXT:       X86 Insert Cache Prefetches
72; CHECK-NEXT:       X86 insert wait instruction
73; CHECK-NEXT:       Contiguously Lay Out Funclets
74; CHECK-NEXT:       Remove Loads Into Fake Uses
75; CHECK-NEXT:       StackMap Liveness Analysis
76; CHECK-NEXT:       Live DEBUG_VALUE analysis
77; CHECK-NEXT:       Machine Sanitizer Binary Metadata
78; CHECK-NEXT:       Lazy Machine Block Frequency Analysis
79; CHECK-NEXT:       Machine Optimization Remark Emitter
80; CHECK-NEXT:       Stack Frame Layout Analysis
81; CHECK-NEXT:       X86 Speculative Execution Side Effect Suppression
82; CHECK-NEXT:       X86 Indirect Thunks
83; CHECK-NEXT:       X86 Return Thunks
84; CHECK-NEXT:       Check CFA info and insert CFI instructions if needed
85; CHECK-NEXT:       X86 Load Value Injection (LVI) Ret-Hardening
86; CHECK-NEXT:       Pseudo Probe Inserter
87; CHECK-NEXT:       Unpack machine instruction bundles
88; CHECK-NEXT:       Lazy Machine Block Frequency Analysis
89; CHECK-NEXT:       Machine Optimization Remark Emitter
90; CHECK-NEXT:       X86 Assembly Printer
91; CHECK-NEXT:       Free MachineFunction
92
93define void @f() {
94  ret void
95}
96