LLVM: lib/Target/Hexagon/HexagonCopyToCombine.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "hexagon-copy-combine"
Functions
INITIALIZE_PASS (HexagonCopyToCombine, "hexagon-copy-combine", "Hexagon Copy-To-Combine Pass", false, false) static bool isCombinableInstType(MachineInstr &MI
template<unsigned N>
static bool isGreaterThanNBitTFRI (const MachineInstr &I)
static bool areCombinableOperations (const TargetRegisterInfo *TRI, MachineInstr &HighRegInst, MachineInstr &LowRegInst, bool AllowC64)
areCombinableOperations - Returns true if the two instruction can be merge into a combine (ignoring register constraints).
static bool isEvenReg (unsigned Reg)
static void removeKillInfo (MachineInstr &MI, unsigned RegNotKilled)
static bool isUnsafeToMoveAcross (MachineInstr &MI, unsigned UseReg, unsigned DestReg, const TargetRegisterInfo *TRI)
Returns true if it is unsafe to move a copy instruction from UseReg to DestReg over the instruction MI.
static Register UseReg (const MachineOperand &MO)
Variables
static cl::opt< bool > IsCombinesDisabled ("disable-merge-into-combines", cl::Hidden, cl::desc("Disable merging into combines"))
static cl::opt< bool > IsConst64Disabled ("disable-const64", cl::Hidden, cl::desc("Disable generation of const64"))
static cl::opt< unsigned > MaxNumOfInstsBetweenNewValueStoreAndTFR ("max-num-inst-between-tfr-and-nv-store", cl::Hidden, cl::init(4), cl::desc("Maximum distance between a tfr feeding a store we " "consider the store still to be newifiable"))
const HexagonInstrInfo * TII
const HexagonInstrInfo bool ShouldCombineAggressively

DEBUG_TYPE

#define DEBUG_TYPE "hexagon-copy-combine"

areCombinableOperations()

INITIALIZE_PASS()

INITIALIZE_PASS ( HexagonCopyToCombine ,
"hexagon-copy-combine" ,
"Hexagon Copy-To-Combine Pass" ,
false ,
false ) &

isEvenReg()

isGreaterThanNBitTFRI()

isUnsafeToMoveAcross()

removeKillInfo()

UseReg()

IsCombinesDisabled

cl::opt< bool > IsCombinesDisabled("disable-merge-into-combines", cl::Hidden, cl::desc("Disable merging into combines")) ( "disable-merge-into-combines" , cl::Hidden , cl::desc("Disable merging into combines") ) static

IsConst64Disabled

MaxNumOfInstsBetweenNewValueStoreAndTFR

cl::opt< unsigned > MaxNumOfInstsBetweenNewValueStoreAndTFR("max-num-inst-between-tfr-and-nv-store", cl::Hidden, cl::init(4), cl::desc("Maximum distance between a tfr feeding a store we " "consider the store still to be newifiable")) ( "max-num-inst-between-tfr-and-nv-store" , cl::Hidden , cl::init(4) , cl::desc("Maximum distance between a tfr feeding a store we " "consider the store still to be newifiable") ) static

ShouldCombineAggressively

TII