Go to the documentation of this file.
18 #ifndef LLVM_CODEGEN_LOOPTRAVERSAL_H
19 #define LLVM_CODEGEN_LOOPTRAVERSAL_H
25 class MachineBasicBlock;
26 class MachineFunction;
69 bool PrimaryCompleted =
false;
72 unsigned IncomingProcessed = 0;
75 unsigned PrimaryIncoming = 0;
78 unsigned IncomingCompleted = 0;
115 #endif // LLVM_CODEGEN_LOOPTRAVERSAL_H
bool PrimaryPass
True if this is the first time we process the basic block.
This is an optimization pass for GlobalISel generic memory operations.
This class provides the basic blocks traversal order used by passes like ReachingDefAnalysis and Exec...
TraversedMBBInfo(MachineBasicBlock *BB=nullptr, bool Primary=true, bool Done=true)
TraversalOrder traverse(MachineFunction &MF)
bool IsDone
True if the block that is ready for its final round of processing.
MachineBasicBlock * MBB
The basic block.
SmallVector< TraversedMBBInfo, 4 > TraversalOrder
Identifies basic blocks that are part of loops and should to be visited twice and returns efficient t...
Common register allocation spilling lr str ldr sxth r3 ldr mla r4 can lr mov lr str ldr sxth r3 mla r4 and then merge mul and lr str ldr sxth r3 mla r4 It also increase the likelihood the store may become dead bb27 Successors according to LLVM BB