LLVM 22.0.0git
SystemZElimCompare.cpp File Reference

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)

Variables

unsigned Reg

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "systemz-elim-compare"

Definition at line 36 of file SystemZElimCompare.cpp.

Function Documentation

◆ getCompareSourceReg()

unsigned getCompareSourceReg ( MachineInstr & Compare)
static

Definition at line 166 of file SystemZElimCompare.cpp.

References assert(), and isLoadAndTestAsCmp().

◆ INITIALIZE_PASS()

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

References DEBUG_TYPE.

◆ isAddWithImmediate()

bool isAddWithImmediate ( unsigned Opcode)
static

Definition at line 337 of file SystemZElimCompare.cpp.

◆ isCompareZero()

bool isCompareZero ( MachineInstr & Compare)
static

Definition at line 498 of file SystemZElimCompare.cpp.

References isLoadAndTestAsCmp().

◆ isLoadAndTestAsCmp()

bool isLoadAndTestAsCmp ( MachineInstr & MI)
static

Definition at line 155 of file SystemZElimCompare.cpp.

References MI.

Referenced by getCompareSourceReg(), and isCompareZero().

◆ resultTests()

bool resultTests ( MachineInstr & MI,
unsigned Reg )
static

Definition at line 124 of file SystemZElimCompare.cpp.

References MI, and Reg.

◆ 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"  )

References llvm::Other.

◆ STATISTIC() [4/4]

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

Variable Documentation

◆ Reg

unsigned 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
IRTranslator LLVM IR MI

Definition at line 107 of file SystemZElimCompare.cpp.