Go to the source code of this file.
|
| INITIALIZE_PASS_BEGIN (MVETPAndVPTOptimisations, DEBUG_TYPE, "ARM MVE TailPred and VPT Optimisations pass", false, false) INITIALIZE_PASS_END(MVETPAndVPTOptimisations |
|
ARM MVE TailPred and VPT Optimisations static false MachineInstr * | LookThroughCOPY (MachineInstr *MI, MachineRegisterInfo *MRI) |
|
static bool | findLoopComponents (MachineLoop *ML, MachineRegisterInfo *MRI, MachineInstr *&LoopStart, MachineInstr *&LoopPhi, MachineInstr *&LoopDec, MachineInstr *&LoopEnd) |
|
static void | RevertWhileLoopSetup (MachineInstr *MI, const TargetInstrInfo *TII) |
|
static bool | IsInvalidTPInstruction (MachineInstr &MI) |
|
static bool | IsVCMP (unsigned Opcode) |
|
static bool | CanHaveSwappedOperands (unsigned Opcode) |
|
static ARMCC::CondCodes | GetCondCode (MachineInstr &Instr) |
|
static bool | IsVPNOTEquivalent (MachineInstr &Cond, MachineInstr &Prev) |
|
static bool | IsWritingToVCCR (MachineInstr &Instr) |
|
static bool | MoveVPNOTBeforeFirstUser (MachineBasicBlock &MBB, MachineBasicBlock::iterator Iter, Register Reg) |
|
◆ DEBUG_TYPE
#define DEBUG_TYPE "arm-mve-vpt-opts" |
◆ CanHaveSwappedOperands()
◆ findLoopComponents()
Definition at line 111 of file MVETPAndVPTOptimisationsPass.cpp.
References llvm::dbgs(), llvm::MachineOperand::getMBB(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), LLVM_DEBUG, LookThroughCOPY(), ML, MRI, and llvm::MachineBasicBlock::terminators().
◆ GetCondCode()
◆ INITIALIZE_PASS_BEGIN()
INITIALIZE_PASS_BEGIN |
( |
MVETPAndVPTOptimisations |
, |
|
|
DEBUG_TYPE |
, |
|
|
"ARM MVE TailPred and VPT Optimisations pass" |
, |
|
|
false |
, |
|
|
false |
|
|
) |
| |
◆ IsInvalidTPInstruction()
◆ IsVCMP()
◆ IsVPNOTEquivalent()
◆ IsWritingToVCCR()
◆ LookThroughCOPY()
◆ MoveVPNOTBeforeFirstUser()
Definition at line 653 of file MVETPAndVPTOptimisationsPass.cpp.
References assert(), llvm::dbgs(), llvm::MachineInstr::dump(), llvm::MachineBasicBlock::end(), llvm::ilist_node_impl< OptionsT >::getIterator(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::getVPTInstrPredicate(), LLVM_DEBUG, MBB, llvm::ARMVCC::None, llvm::MachineOperand::setIsKill(), and llvm::MachineBasicBlock::splice().
◆ RevertWhileLoopSetup()
Definition at line 187 of file MVETPAndVPTOptimisationsPass.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::ARMCC::AL, assert(), llvm::BuildMI(), llvm::RegState::Define, llvm::ARMCC::EQ, I, MBB, MI, llvm::MachineBasicBlock::terminators(), and TII.
◆ DEBUG_TYPE
◆ false
ARM MVE TailPred and VPT Optimisations false |
◆ MergeEndDec
◆ pass
ARM MVE TailPred and VPT Optimisations pass |
◆ SetLRPredicate
cl::opt< bool > SetLRPredicate("arm-set-lr-predicate", cl::Hidden, cl::desc("Enable setting lr as a predicate in tail predication regions."), cl::init(true)) |
( |
"arm-set-lr-predicate" |
, |
|
|
cl::Hidden |
, |
|
|
cl::desc("Enable setting lr as a predicate in tail predication regions.") |
, |
|
|
cl::init(true) |
|
|
) |
| |
|
static |