xref: /llvm-project/llvm/test/CodeGen/M68k/pipeline.ll (revision 590e5e20b12f9fd956d0ba7de83aa2ab44c9faeb)
1; RUN: llc -mtriple=m68k -debug-pass=Structure < %s -o /dev/null 2>&1 | grep -v "Verify generated machine code" | FileCheck %s
2; CHECK:  ModulePass Manager
3; CHECK-NEXT:    Pre-ISel Intrinsic Lowering
4; CHECK-NEXT:    FunctionPass Manager
5; CHECK-NEXT:      Expand large div/rem
6; CHECK-NEXT:      Expand large fp convert
7; CHECK-NEXT:      Expand Atomic instructions
8; CHECK-NEXT:      Module Verifier
9; CHECK-NEXT:      Dominator Tree Construction
10; CHECK-NEXT:      Basic Alias Analysis (stateless AA impl)
11; CHECK-NEXT:      Natural Loop Information
12; CHECK-NEXT:      Canonicalize natural loops
13; CHECK-NEXT:      Scalar Evolution Analysis
14; CHECK-NEXT:      Loop Pass Manager
15; CHECK-NEXT:        Canonicalize Freeze Instructions in Loops
16; CHECK-NEXT:        Induction Variable Users
17; CHECK-NEXT:        Loop Strength Reduction
18; CHECK-NEXT:      Basic Alias Analysis (stateless AA impl)
19; CHECK-NEXT:      Function Alias Analysis Results
20; CHECK-NEXT:      Merge contiguous icmps into a memcmp
21; CHECK-NEXT:      Natural Loop Information
22; CHECK-NEXT:      Lazy Branch Probability Analysis
23; CHECK-NEXT:      Lazy Block Frequency Analysis
24; CHECK-NEXT:      Expand memcmp() to load/stores
25; CHECK-NEXT:      Lower Garbage Collection Instructions
26; CHECK-NEXT:      Shadow Stack GC Lowering
27; CHECK-NEXT:      Remove unreachable blocks from the CFG
28; CHECK-NEXT:      Natural Loop Information
29; CHECK-NEXT:      Post-Dominator Tree Construction
30; CHECK-NEXT:      Branch Probability Analysis
31; CHECK-NEXT:      Block Frequency Analysis
32; CHECK-NEXT:      Constant Hoisting
33; CHECK-NEXT:      Replace intrinsics with calls to vector library
34; CHECK-NEXT:      Lazy Branch Probability Analysis
35; CHECK-NEXT:      Lazy Block Frequency Analysis
36; CHECK-NEXT:      Optimization Remark Emitter
37; CHECK-NEXT:      Partially inline calls to library functions
38; CHECK-NEXT:      Instrument function entry/exit with calls to e.g. mcount() (post inlining)
39; CHECK-NEXT:      Scalarize Masked Memory Intrinsics
40; CHECK-NEXT:      Expand reduction intrinsics
41; CHECK-NEXT:      Natural Loop Information
42; CHECK-NEXT:      CodeGen Prepare
43; CHECK-NEXT:      Dominator Tree Construction
44; CHECK-NEXT:      Exception handling preparation
45; CHECK-NEXT:      Basic Alias Analysis (stateless AA impl)
46; CHECK-NEXT:      Function Alias Analysis Results
47; CHECK-NEXT:      ObjC ARC contraction
48; CHECK-NEXT:      Prepare callbr
49; CHECK-NEXT:      Safe Stack instrumentation pass
50; CHECK-NEXT:      Insert stack protectors
51; CHECK-NEXT:      Module Verifier
52; CHECK-NEXT:      Basic Alias Analysis (stateless AA impl)
53; CHECK-NEXT:      Function Alias Analysis Results
54; CHECK-NEXT:      Natural Loop Information
55; CHECK-NEXT:      Post-Dominator Tree Construction
56; CHECK-NEXT:      Branch Probability Analysis
57; CHECK-NEXT:      Assignment Tracking Analysis
58; CHECK-NEXT:      Lazy Branch Probability Analysis
59; CHECK-NEXT:      Lazy Block Frequency Analysis
60; CHECK-NEXT:      M68k DAG->DAG Pattern Instruction Selection
61; CHECK-NEXT:      M68k PIC Global Base Reg Initialization
62; CHECK-NEXT:      Finalize ISel and expand pseudo-instructions
63; CHECK-NEXT:      Lazy Machine Block Frequency Analysis
64; CHECK-NEXT:      Early Tail Duplication
65; CHECK-NEXT:      Optimize machine instruction PHIs
66; CHECK-NEXT:      Slot index numbering
67; CHECK-NEXT:      Merge disjoint stack slots
68; CHECK-NEXT:      Local Stack Slot Allocation
69; CHECK-NEXT:      Remove dead machine instructions
70; CHECK-NEXT:      MachineDominator Tree Construction
71; CHECK-NEXT:      Machine Natural Loop Construction
72; CHECK-NEXT:      Machine Block Frequency Analysis
73; CHECK-NEXT:      Early Machine Loop Invariant Code Motion
74; CHECK-NEXT:      MachineDominator Tree Construction
75; CHECK-NEXT:      Machine Block Frequency Analysis
76; CHECK-NEXT:      Machine Common Subexpression Elimination
77; CHECK-NEXT:      MachinePostDominator Tree Construction
78; CHECK-NEXT:      Machine Cycle Info Analysis
79; CHECK-NEXT:      Machine code sinking
80; CHECK-NEXT:      Peephole Optimizations
81; CHECK-NEXT:      Remove dead machine instructions
82; CHECK-NEXT:      Detect Dead Lanes
83; CHECK-NEXT:      Init Undef Pass
84; CHECK-NEXT:      Process Implicit Definitions
85; CHECK-NEXT:      Remove unreachable machine basic blocks
86; CHECK-NEXT:      Live Variable Analysis
87; CHECK-NEXT:      Eliminate PHI nodes for register allocation
88; CHECK-NEXT:      Two-Address instruction pass
89; CHECK-NEXT:      MachineDominator Tree Construction
90; CHECK-NEXT:      Slot index numbering
91; CHECK-NEXT:      Live Interval Analysis
92; CHECK-NEXT:      Register Coalescer
93; CHECK-NEXT:      Rename Disconnected Subregister Components
94; CHECK-NEXT:      Machine Instruction Scheduler
95; CHECK-NEXT:      Machine Block Frequency Analysis
96; CHECK-NEXT:      Debug Variable Analysis
97; CHECK-NEXT:      Live Stack Slot Analysis
98; CHECK-NEXT:      Virtual Register Map
99; CHECK-NEXT:      Live Register Matrix
100; CHECK-NEXT:      Bundle Machine CFG Edges
101; CHECK-NEXT:      Spill Code Placement Analysis
102; CHECK-NEXT:      Lazy Machine Block Frequency Analysis
103; CHECK-NEXT:      Machine Optimization Remark Emitter
104; CHECK-NEXT:      Greedy Register Allocator
105; CHECK-NEXT:      Virtual Register Rewriter
106; CHECK-NEXT:      Register Allocation Pass Scoring
107; CHECK-NEXT:      Stack Slot Coloring
108; CHECK-NEXT:      Machine Copy Propagation Pass
109; CHECK-NEXT:      Machine Loop Invariant Code Motion
110; CHECK-NEXT:      Remove Redundant DEBUG_VALUE analysis
111; CHECK-NEXT:      Fixup Statepoint Caller Saved
112; CHECK-NEXT:      PostRA Machine Sink
113; CHECK-NEXT:      Machine Block Frequency Analysis
114; CHECK-NEXT:      MachineDominator Tree Construction
115; CHECK-NEXT:      MachinePostDominator Tree Construction
116; CHECK-NEXT:      Lazy Machine Block Frequency Analysis
117; CHECK-NEXT:      Machine Optimization Remark Emitter
118; CHECK-NEXT:      Shrink Wrapping analysis
119; CHECK-NEXT:      Prologue/Epilogue Insertion & Frame Finalization
120; CHECK-NEXT:      Machine Late Instructions Cleanup Pass
121; CHECK-NEXT:      Control Flow Optimizer
122; CHECK-NEXT:      Lazy Machine Block Frequency Analysis
123; CHECK-NEXT:      Tail Duplication
124; CHECK-NEXT:      Machine Copy Propagation Pass
125; CHECK-NEXT:      Post-RA pseudo instruction expansion pass
126; CHECK-NEXT:      M68k pseudo instruction expansion pass
127; CHECK-NEXT:      MachineDominator Tree Construction
128; CHECK-NEXT:      Machine Natural Loop Construction
129; CHECK-NEXT:      Post RA top-down list latency scheduler
130; CHECK-NEXT:      Analyze Machine Code For Garbage Collection
131; CHECK-NEXT:      Machine Block Frequency Analysis
132; CHECK-NEXT:      MachinePostDominator Tree Construction
133; CHECK-NEXT:      Branch Probability Basic Block Placement
134; CHECK-NEXT:      Insert fentry calls
135; CHECK-NEXT:      Insert XRay ops
136; CHECK-NEXT:      Implement the 'patchable-function' attribute
137; CHECK-NEXT:      M68k MOVEM collapser pass
138; CHECK-NEXT:      Contiguously Lay Out Funclets
139; CHECK-NEXT:      Remove Loads Into Fake Uses
140; CHECK-NEXT:      StackMap Liveness Analysis
141; CHECK-NEXT:      Live DEBUG_VALUE analysis
142; CHECK-NEXT:      Machine Sanitizer Binary Metadata
143; CHECK-NEXT:      Lazy Machine Block Frequency Analysis
144; CHECK-NEXT:      Machine Optimization Remark Emitter
145; CHECK-NEXT:      Stack Frame Layout Analysis
146; CHECK-NEXT:      M68k Assembly Printer
147; CHECK-NEXT:      Free MachineFunction
148