LLVM 22.0.0git
MVETPAndVPTOptimisationsPass.cpp File Reference

Go to the source code of this file.

Macros

#define DEBUG_TYPE   "arm-mve-vpt-opts"

Functions

 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 MachineInstrLookThroughCOPY (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)

Variables

static cl::opt< boolMergeEndDec ("arm-enable-merge-loopenddec", cl::Hidden, cl::desc("Enable merging Loop End and Dec instructions."), cl::init(true))
static cl::opt< boolSetLRPredicate ("arm-set-lr-predicate", cl::Hidden, cl::desc("Enable setting lr as a predicate in tail predication regions."), cl::init(true))
 DEBUG_TYPE
ARM MVE TailPred and VPT Optimisations pass
ARM MVE TailPred and VPT Optimisations false

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "arm-mve-vpt-opts"

Definition at line 35 of file MVETPAndVPTOptimisationsPass.cpp.

Function Documentation

◆ CanHaveSwappedOperands()

bool CanHaveSwappedOperands ( unsigned Opcode)
static

Definition at line 550 of file MVETPAndVPTOptimisationsPass.cpp.

Referenced by IsVPNOTEquivalent().

◆ findLoopComponents()

◆ GetCondCode()

ARMCC::CondCodes GetCondCode ( MachineInstr & Instr)
static

Definition at line 572 of file MVETPAndVPTOptimisationsPass.cpp.

References assert(), and IsVCMP().

Referenced by IsVPNOTEquivalent().

◆ INITIALIZE_PASS_BEGIN()

INITIALIZE_PASS_BEGIN ( MVETPAndVPTOptimisations ,
DEBUG_TYPE ,
"ARM MVE TailPred and VPT Optimisations pass" ,
false ,
false  )

◆ IsInvalidTPInstruction()

bool IsInvalidTPInstruction ( MachineInstr & MI)
static

Definition at line 264 of file MVETPAndVPTOptimisationsPass.cpp.

References llvm::isLoopStart(), and MI.

◆ IsVCMP()

bool IsVCMP ( unsigned Opcode)
static

Definition at line 545 of file MVETPAndVPTOptimisationsPass.cpp.

References llvm::VCMPOpcodeToVPT().

Referenced by GetCondCode(), and IsVPNOTEquivalent().

◆ IsVPNOTEquivalent()

◆ IsWritingToVCCR()

bool IsWritingToVCCR ( MachineInstr & Instr)
static

◆ LookThroughCOPY()

ARM MVE TailPred and VPT Optimisations static false MachineInstr * LookThroughCOPY ( MachineInstr * MI,
MachineRegisterInfo * MRI )
static

Definition at line 99 of file MVETPAndVPTOptimisationsPass.cpp.

References LookThroughCOPY(), MI, and MRI.

Referenced by findLoopComponents(), and LookThroughCOPY().

◆ MoveVPNOTBeforeFirstUser()

◆ RevertWhileLoopSetup()

Variable Documentation

◆ DEBUG_TYPE

DEBUG_TYPE

Definition at line 96 of file MVETPAndVPTOptimisationsPass.cpp.

◆ false

ARM MVE TailPred and VPT Optimisations false

Definition at line 97 of file MVETPAndVPTOptimisationsPass.cpp.

◆ MergeEndDec

cl::opt< bool > MergeEndDec("arm-enable-merge-loopenddec", cl::Hidden, cl::desc("Enable merging Loop End and Dec instructions."), cl::init(true)) ( "arm-enable-merge-loopenddec" ,
cl::Hidden ,
cl::desc("Enable merging Loop End and Dec instructions.") ,
cl::init(true)  )
static

◆ pass

ARM MVE TailPred and VPT Optimisations pass

Definition at line 97 of file MVETPAndVPTOptimisationsPass.cpp.

◆ 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