LLVM: lib/Target/SystemZ/SystemZElimCompare.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "systemz-elim-compare"
Functions
STATISTIC (BranchOnCounts, "Number of branch-on-count instructions")
STATISTIC (LoadAndTraps, "Number of load-and-trap instructions")
STATISTIC (EliminatedComparisons, "Number of eliminated comparisons")
STATISTIC (FusedComparisons, "Number of fused compare-and-branch instructions")
INITIALIZE_PASS (SystemZElimCompare, DEBUG_TYPE, "SystemZ Comparison Elimination", false, false) static bool preservesValueOf(MachineInstr &MI
static bool resultTests (MachineInstr &MI, unsigned Reg)
static bool isLoadAndTestAsCmp (MachineInstr &MI)
static unsigned getCompareSourceReg (MachineInstr &Compare)
static bool isAddWithImmediate (unsigned Opcode)
static bool isCompareZero (MachineInstr &Compare)

DEBUG_TYPE

#define DEBUG_TYPE "systemz-elim-compare"

getCompareSourceReg()

INITIALIZE_PASS()

INITIALIZE_PASS ( SystemZElimCompare ,
DEBUG_TYPE ,
"SystemZ Comparison Elimination" ,
false ,
false ) &

isAddWithImmediate()

isCompareZero()

isLoadAndTestAsCmp()

resultTests()

STATISTIC() [1/4]

STATISTIC ( BranchOnCounts ,
"Number of branch-on-count instructions" )

STATISTIC() [2/4]

STATISTIC ( EliminatedComparisons ,
"Number of eliminated comparisons" )

STATISTIC() [3/4]

STATISTIC ( FusedComparisons ,
"Number of fused compare-and-branch instructions" )

STATISTIC() [4/4]

STATISTIC ( LoadAndTraps ,
"Number of load-and-trap instructions" )

Reg

Initial value:

{

switch (MI.getOpcode()) {

case SystemZ::LR:

case SystemZ::LGR:

case SystemZ::LGFR:

case SystemZ::LTR:

case SystemZ::LTGR:

case SystemZ::LTGFR:

if (MI.getOperand(1).getReg() == Reg)

return true;

}

return false

Definition at line 107 of file SystemZElimCompare.cpp.