Home
last modified time | relevance | path

Searched refs:WLS (Results 1 – 11 of 11) sorted by relevance

/llvm-project-15.0.7/llvm/lib/Target/ARM/
H A DARMBlockPlacement.cpp47 bool revertWhileToDoLoop(MachineInstr *WLS);
99 MachineBasicBlock *Preheader = WLS->getParent(); in revertWhileToDoLoop()
100 assert(WLS != &Preheader->back()); in revertWhileToDoLoop()
107 WLS->getOperand(1).setIsKill(false); in revertWhileToDoLoop()
108 if (WLS->getOpcode() == ARM::t2WhileLoopStartTP) in revertWhileToDoLoop()
109 WLS->getOperand(2).setIsKill(false); in revertWhileToDoLoop()
124 BuildMI(*NewBlock, Br, WLS->getDebugLoc(), in revertWhileToDoLoop()
128 MIB.add(WLS->getOperand(0)); in revertWhileToDoLoop()
129 MIB.add(WLS->getOperand(1)); in revertWhileToDoLoop()
130 if (WLS->getOpcode() == ARM::t2WhileLoopStartTP) in revertWhileToDoLoop()
[all …]
H A DARMISelLowering.h135 WLS, // Low-overhead loops, While Loop Start branch. See t2WhileLoopStart enumerator
H A DARMInstrThumb2.td370 // Label operands for BF/BFL/WLS/DLS/LE
5559 // WhileLoopStartLR that sets up LR and branches on zero, equivalent to WLS. It
H A DARMISelDAGToDAG.cpp4011 case ARMISD::WLS: { in Select()
H A DARMISelLowering.cpp1864 MAKE_CASE(ARMISD::WLS) in getTargetNodeName()
17996 Res = DAG.getNode(ARMISD::WLS, dl, MVT::Other, Ops); in PerformHWLoopCombine()
18003 Res = DAG.getNode(ARMISD::WLS, dl, MVT::Other, Ops); in PerformHWLoopCombine()
/llvm-project-15.0.7/llvm/lib/IR/
H A DInstruction.cpp846 DenseSet<unsigned> WLS; in copyMetadata() local
848 WLS.insert(M); in copyMetadata()
855 if (WL.empty() || WLS.count(MD.first)) in copyMetadata()
858 if (WL.empty() || WLS.count(LLVMContext::MD_dbg)) in copyMetadata()
/llvm-project-15.0.7/llvm/test/CodeGen/Thumb2/LowOverheadLoops/
H A Dloop-guards.ll47 ; TODO: This could generate WLS
82 ; TODO: This could generate WLS
117 ; TODO: This could generate WLS
H A Dwhile.mir4 # TODO: Remove the lr = tMOVr which actually makes the WLS def dead!
H A Dwhile-negative-offset.mir2 # CHECK-NOT: WLS
H A Dwls-revert-placement.mir4 # This is a large test for block placement, including reverting WLS to DLS. It
/llvm-project-15.0.7/llvm/test/CodeGen/Thumb2/
H A Dmve-wls-block-placement.mir5 ; Checks that Predecessor gets moved (to before the LoopExit) if it contains a backward WLS.
11 …; Checks that Predecessor (containing a backwards WLS) does not get moved to before the loopExit i…
17 …; Checks that Predecessor (to which a forward WLS exists) is not moved if moving it would cause th…
23 ; Checks that a MachineFunction is unaffected if it doesn't contain any WLS (pseudo) instruction.
29 ; Within a nested (Both the WLS and loopExit are at depth=3 here) loop, checks that Predecessor
30 ; gets moved (in backward direction) if there exists a backdwards WLS from it to the LoopExit.
36 …; Checks that Predecessor (to which a forward WLS exists) is moved if moving it would NOT cause th…