brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.2 KiB · 661f67d Raw
184 lines · plain
1;; When EXPENSIVE_CHECKS are enabled, the machine verifier appears between each2;; pass. Ignore it with 'grep -v'.3; RUN: llc --mtriple=loongarch32 -mattr=+d -O1 --debug-pass=Structure %s -o /dev/null 2>&1 | \4; RUN:   grep -v "Verify generated machine code" | FileCheck %s --check-prefix=LAXX5; RUN: llc --mtriple=loongarch32 -mattr=+d -O2 --debug-pass=Structure %s -o /dev/null 2>&1 | \6; RUN:   grep -v "Verify generated machine code" | FileCheck %s --check-prefix=LAXX7; RUN: llc --mtriple=loongarch32 -mattr=+d -O3 --debug-pass=Structure %s -o /dev/null 2>&1 | \8; RUN:   grep -v "Verify generated machine code" | FileCheck %s --check-prefix=LAXX9; RUN: llc --mtriple=loongarch64 -mattr=+d -O1 --debug-pass=Structure %s -o /dev/null 2>&1 | \10; RUN:   grep -v "Verify generated machine code" | FileCheck %s --check-prefixes=LAXX,LA6411; RUN: llc --mtriple=loongarch64 -mattr=+d -O2 --debug-pass=Structure %s -o /dev/null 2>&1 | \12; RUN:   grep -v "Verify generated machine code" | FileCheck %s --check-prefixes=LAXX,LA6413; RUN: llc --mtriple=loongarch64 -mattr=+d -O3 --debug-pass=Structure %s -o /dev/null 2>&1 | \14; RUN:   grep -v "Verify generated machine code" | FileCheck %s --check-prefixes=LAXX,LA6415 16; REQUIRES: asserts17 18; LAXX-LABEL: Pass Arguments:19; LAXX-NEXT: Target Library Information20; LAXX-NEXT: Target Pass Configuration21; LAXX-NEXT: Machine Module Information22; LAXX-NEXT: Target Transform Information23; LAXX-NEXT: Assumption Cache Tracker24; LAXX-NEXT: Type-Based Alias Analysis25; LAXX-NEXT: Scoped NoAlias Alias Analysis26; LAXX-NEXT: Profile summary info27; LAXX-NEXT: Create Garbage Collector Module Metadata28; LAXX-NEXT: Machine Branch Probability Analysis29; LAXX-NEXT: Default Regalloc Eviction Advisor30; LAXX-NEXT: Default Regalloc Priority Advisor31; LAXX-NEXT:   ModulePass Manager32; LAXX-NEXT:     Pre-ISel Intrinsic Lowering33; LAXX-NEXT:     FunctionPass Manager34; LAXX-NEXT:       Expand large div/rem35; LAXX-NEXT:       Expand fp36; LAXX-NEXT:       Expand Atomic instructions37; LAXX-NEXT:       Module Verifier38; LAXX-NEXT:       Dominator Tree Construction39; LAXX-NEXT:       Basic Alias Analysis (stateless AA impl)40; LAXX-NEXT:       Natural Loop Information41; LAXX-NEXT:       Canonicalize natural loops42; LAXX-NEXT:       Scalar Evolution Analysis43; LAXX-NEXT:       Loop Pass Manager44; LAXX-NEXT:         Canonicalize Freeze Instructions in Loops45; LAXX-NEXT:         Induction Variable Users46; LAXX-NEXT:         Loop Strength Reduction47; LAXX-NEXT:       Basic Alias Analysis (stateless AA impl)48; LAXX-NEXT:       Function Alias Analysis Results49; LAXX-NEXT:       Merge contiguous icmps into a memcmp50; LAXX-NEXT:       Natural Loop Information51; LAXX-NEXT:       Lazy Branch Probability Analysis52; LAXX-NEXT:       Lazy Block Frequency Analysis53; LAXX-NEXT:       Expand memcmp() to load/stores54; LAXX-NEXT:       Lower Garbage Collection Instructions55; LAXX-NEXT:       Shadow Stack GC Lowering56; LAXX-NEXT:       Remove unreachable blocks from the CFG57; LAXX-NEXT:       Natural Loop Information58; LAXX-NEXT:       Post-Dominator Tree Construction59; LAXX-NEXT:       Branch Probability Analysis60; LAXX-NEXT:       Block Frequency Analysis61; LAXX-NEXT:       Constant Hoisting62; LAXX-NEXT:       Replace intrinsics with calls to vector library63; LAXX-NEXT:       Lazy Branch Probability Analysis64; LAXX-NEXT:       Lazy Block Frequency Analysis65; LAXX-NEXT:       Optimization Remark Emitter66; LAXX-NEXT:       Partially inline calls to library functions67; LAXX-NEXT:       Instrument function entry/exit with calls to e.g. mcount() (post inlining)68; LAXX-NEXT:       Scalarize Masked Memory Intrinsics69; LAXX-NEXT:       Expand reduction intrinsics70; LAXX-NEXT:       Natural Loop Information71; LAXX-NEXT:       Type Promotion72; LAXX-NEXT:       CodeGen Prepare73; LAXX-NEXT:       Dominator Tree Construction74; LAXX-NEXT:       Exception handling preparation75; LAXX-NEXT:       Basic Alias Analysis (stateless AA impl)76; LAXX-NEXT:       Function Alias Analysis Results77; LAXX-NEXT:       ObjC ARC contraction78; LAXX-NEXT:       Prepare callbr79; LAXX-NEXT:       Safe Stack instrumentation pass80; LAXX-NEXT:       Insert stack protectors81; LAXX-NEXT:       Module Verifier82; LAXX-NEXT:       Basic Alias Analysis (stateless AA impl)83; LAXX-NEXT:       Function Alias Analysis Results84; LAXX-NEXT:       Natural Loop Information85; LAXX-NEXT:       Post-Dominator Tree Construction86; LAXX-NEXT:       Branch Probability Analysis87; LAXX-NEXT:       Assignment Tracking Analysis88; LAXX-NEXT:       Lazy Branch Probability Analysis89; LAXX-NEXT:       Lazy Block Frequency Analysis90; LAXX-NEXT:       LoongArch DAG->DAG Pattern Instruction Selection91; LAXX-NEXT:       Finalize ISel and expand pseudo-instructions92; LAXX-NEXT:       Lazy Machine Block Frequency Analysis93; LAXX-NEXT:       Early Tail Duplication94; LAXX-NEXT:       Optimize machine instruction PHIs95; LAXX-NEXT:       Slot index numbering96; LAXX-NEXT:       Merge disjoint stack slots97; LAXX-NEXT:       Local Stack Slot Allocation98; LAXX-NEXT:       Remove dead machine instructions99; LAXX-NEXT:       MachineDominator Tree Construction100; LAXX-NEXT:       Machine Natural Loop Construction101; LAXX-NEXT:       Machine Block Frequency Analysis102; LAXX-NEXT:       Early Machine Loop Invariant Code Motion103; LAXX-NEXT:       MachineDominator Tree Construction104; LAXX-NEXT:       Machine Block Frequency Analysis105; LAXX-NEXT:       Machine Common Subexpression Elimination106; LAXX-NEXT:       MachinePostDominator Tree Construction107; LAXX-NEXT:       Machine Cycle Info Analysis108; LAXX-NEXT:       Machine code sinking109; LAXX-NEXT:       Peephole Optimizations110; LAXX-NEXT:       Remove dead machine instructions111; LA64-NEXT:       LoongArch Optimize W Instructions112; LAXX-NEXT:       LoongArch Pre-RA pseudo instruction expansion pass113; LAXX-NEXT:       LoongArch Merge Base Offset114; LAXX-NEXT:       Detect Dead Lanes115; LAXX-NEXT:       Init Undef Pass116; LAXX-NEXT:       Process Implicit Definitions117; LAXX-NEXT:       Remove unreachable machine basic blocks118; LAXX-NEXT:       Live Variable Analysis119; LAXX-NEXT:       Eliminate PHI nodes for register allocation120; LAXX-NEXT:       Two-Address instruction pass121; LAXX-NEXT:       MachineDominator Tree Construction122; LAXX-NEXT:       Slot index numbering123; LAXX-NEXT:       Live Interval Analysis124; LAXX-NEXT:       Register Coalescer125; LAXX-NEXT:       Rename Disconnected Subregister Components126; LAXX-NEXT:       Machine Instruction Scheduler127; LAXX-NEXT:       LoongArch Dead register definitions128; LAXX-NEXT:       Machine Block Frequency Analysis129; LAXX-NEXT:       Debug Variable Analysis130; LAXX-NEXT:       Live Stack Slot Analysis131; LAXX-NEXT:       Virtual Register Map132; LAXX-NEXT:       Live Register Matrix133; LAXX-NEXT:       Bundle Machine CFG Edges134; LAXX-NEXT:       Spill Code Placement Analysis135; LAXX-NEXT:       Lazy Machine Block Frequency Analysis136; LAXX-NEXT:       Machine Optimization Remark Emitter137; LAXX-NEXT:       Greedy Register Allocator138; LAXX-NEXT:       Virtual Register Rewriter139; LAXX-NEXT:       Register Allocation Pass Scoring140; LAXX-NEXT:       Stack Slot Coloring141; LAXX-NEXT:       Machine Copy Propagation Pass142; LAXX-NEXT:       Machine Loop Invariant Code Motion143; LAXX-NEXT:       Remove Redundant DEBUG_VALUE analysis144; LAXX-NEXT:       Fixup Statepoint Caller Saved145; LAXX-NEXT:       PostRA Machine Sink146; LAXX-NEXT:       Machine Block Frequency Analysis147; LAXX-NEXT:       MachineDominator Tree Construction148; LAXX-NEXT:       MachinePostDominator Tree Construction149; LAXX-NEXT:       Lazy Machine Block Frequency Analysis150; LAXX-NEXT:       Machine Optimization Remark Emitter151; LAXX-NEXT:       Shrink Wrapping analysis152; LAXX-NEXT:       Prologue/Epilogue Insertion & Frame Finalization153; LAXX-NEXT:       Machine Late Instructions Cleanup Pass154; LAXX-NEXT:       Control Flow Optimizer155; LAXX-NEXT:       Lazy Machine Block Frequency Analysis156; LAXX-NEXT:       Tail Duplication157; LAXX-NEXT:       Machine Copy Propagation Pass158; LAXX-NEXT:       Post-RA pseudo instruction expansion pass159; LAXX-NEXT:       MachineDominator Tree Construction160; LAXX-NEXT:       Machine Natural Loop Construction161; LAXX-NEXT:       Post RA top-down list latency scheduler162; LAXX-NEXT:       Analyze Machine Code For Garbage Collection163; LAXX-NEXT:       Machine Block Frequency Analysis164; LAXX-NEXT:       MachinePostDominator Tree Construction165; LAXX-NEXT:       Branch Probability Basic Block Placement166; LAXX-NEXT:       Insert fentry calls167; LAXX-NEXT:       Insert XRay ops168; LAXX-NEXT:       Implement the 'patchable-function' attribute169; LAXX-NEXT:       Branch relaxation pass170; LAXX-NEXT:       Contiguously Lay Out Funclets171; LAXX-NEXT:       Remove Loads Into Fake Uses172; LAXX-NEXT:       StackMap Liveness Analysis173; LAXX-NEXT:       Live DEBUG_VALUE analysis174; LAXX-NEXT:       Machine Sanitizer Binary Metadata175; LAXX-NEXT:       Lazy Machine Block Frequency Analysis176; LAXX-NEXT:       Machine Optimization Remark Emitter177; LAXX-NEXT:       Stack Frame Layout Analysis178; LAXX-NEXT:       LoongArch pseudo instruction expansion pass179; LAXX-NEXT:       LoongArch atomic pseudo instruction expansion pass180; LAXX-NEXT:       Lazy Machine Block Frequency Analysis181; LAXX-NEXT:       Machine Optimization Remark Emitter182; LAXX-NEXT:       LoongArch Assembly Printer183; LAXX-NEXT:       Free MachineFunction184