1;; When EXPENSIVE_CHECKS are enabled, the machine verifier appears between each 2;; pass. Ignore it with 'grep -v'. 3; RUN: llc --mtriple=loongarch32 -mattr=+d -O0 --debug-pass=Structure %s -o /dev/null 2>&1 | \ 4; RUN: grep -v "Verify generated machine code" | FileCheck %s 5; RUN: llc --mtriple=loongarch64 -mattr=+d -O0 --debug-pass=Structure %s -o /dev/null 2>&1 | \ 6; RUN: grep -v "Verify generated machine code" | FileCheck %s 7 8; REQUIRES: asserts 9 10; CHECK-LABEL: Pass Arguments: 11; CHECK-NEXT: Target Library Information 12; CHECK-NEXT: Target Pass Configuration 13; CHECK-NEXT: Machine Module Information 14; CHECK-NEXT: Target Transform Information 15; CHECK-NEXT: Create Garbage Collector Module Metadata 16; CHECK-NEXT: Assumption Cache Tracker 17; CHECK-NEXT: Profile summary info 18; CHECK-NEXT: Machine Branch Probability Analysis 19; CHECK-NEXT: ModulePass Manager 20; CHECK-NEXT: Pre-ISel Intrinsic Lowering 21; CHECK-NEXT: FunctionPass Manager 22; CHECK-NEXT: Expand large div/rem 23; CHECK-NEXT: Expand large fp convert 24; CHECK-NEXT: Expand Atomic instructions 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: Exception handling preparation 33; CHECK-NEXT: Prepare callbr 34; CHECK-NEXT: Safe Stack instrumentation pass 35; CHECK-NEXT: Insert stack protectors 36; CHECK-NEXT: Module Verifier 37; CHECK-NEXT: Dominator Tree Construction 38; CHECK-NEXT: Basic Alias Analysis (stateless AA impl) 39; CHECK-NEXT: Function Alias Analysis Results 40; CHECK-NEXT: Natural Loop Information 41; CHECK-NEXT: Post-Dominator Tree Construction 42; CHECK-NEXT: Branch Probability Analysis 43; CHECK-NEXT: Assignment Tracking Analysis 44; CHECK-NEXT: Lazy Branch Probability Analysis 45; CHECK-NEXT: Lazy Block Frequency Analysis 46; CHECK-NEXT: LoongArch DAG->DAG Pattern Instruction Selection 47; CHECK-NEXT: Finalize ISel and expand pseudo-instructions 48; CHECK-NEXT: Local Stack Slot Allocation 49; CHECK-NEXT: LoongArch Pre-RA pseudo instruction expansion pass 50; CHECK-NEXT: Eliminate PHI nodes for register allocation 51; CHECK-NEXT: Two-Address instruction pass 52; CHECK-NEXT: Fast Register Allocator 53; CHECK-NEXT: Remove Redundant DEBUG_VALUE analysis 54; CHECK-NEXT: Fixup Statepoint Caller Saved 55; CHECK-NEXT: Lazy Machine Block Frequency Analysis 56; CHECK-NEXT: Machine Optimization Remark Emitter 57; CHECK-NEXT: Prologue/Epilogue Insertion & Frame Finalization 58; CHECK-NEXT: Post-RA pseudo instruction expansion pass 59; CHECK-NEXT: Analyze Machine Code For Garbage Collection 60; CHECK-NEXT: Insert fentry calls 61; CHECK-NEXT: Insert XRay ops 62; CHECK-NEXT: Implement the 'patchable-function' attribute 63; CHECK-NEXT: Branch relaxation pass 64; CHECK-NEXT: Contiguously Lay Out Funclets 65; CHECK-NEXT: Remove Loads Into Fake Uses 66; CHECK-NEXT: StackMap Liveness Analysis 67; CHECK-NEXT: Live DEBUG_VALUE analysis 68; CHECK-NEXT: Machine Sanitizer Binary Metadata 69; CHECK-NEXT: Lazy Machine Block Frequency Analysis 70; CHECK-NEXT: Machine Optimization Remark Emitter 71; CHECK-NEXT: Stack Frame Layout Analysis 72; CHECK-NEXT: LoongArch pseudo instruction expansion pass 73; CHECK-NEXT: LoongArch atomic pseudo instruction expansion pass 74; CHECK-NEXT: Lazy Machine Block Frequency Analysis 75; CHECK-NEXT: Machine Optimization Remark Emitter 76; CHECK-NEXT: LoongArch Assembly Printer 77; CHECK-NEXT: Free MachineFunction 78