LLVM: lib/Target/Mips/MicroMipsSizeReduction.cpp File Reference (original) (raw)

This pass is used to reduce the size of instructions where applicable. More...

Go to the source code of this file.

Functions
STATISTIC (NumReduced, "Number of instructions reduced (32-bit to 16-bit ones, " "or two instructions into one")
INITIALIZE_PASS (MicroMipsSizeReduce, DEBUG_TYPE, MICROMIPS_SIZE_REDUCE_NAME, false, false) static bool IsSP(const MachineOperand &MO)
static bool isMMThreeBitGPRegister (const MachineOperand &MO)
static bool isMMSourceRegister (const MachineOperand &MO)
static bool GetImm (MachineInstr *MI, unsigned Op, int64_t &Imm)
static bool AddiuspImmValue (int64_t Value)
static bool InRange (int64_t Value, unsigned short Shift, int LBound, int HBound)
static bool ImmInRange (MachineInstr *MI, const ReduceEntry &Entry)
static bool CheckXWPInstr (MachineInstr *MI, bool ReduceToLwp, const ReduceEntry &Entry)
static bool ConsecutiveRegisters (unsigned Reg1, unsigned Reg2)
static bool ConsecutiveInstr (MachineInstr *MI1, MachineInstr *MI2)
static bool IsMovepSrcRegister (unsigned Reg)
static bool IsMovepDestinationReg (unsigned Reg)
static bool IsMovepDestinationRegPair (unsigned R0, unsigned R1)

This pass is used to reduce the size of instructions where applicable.

TODO: Implement microMIPS64 support.

Definition in file MicroMipsSizeReduction.cpp.

DEBUG_TYPE

#define DEBUG_TYPE "micromips-reduce-size"

MICROMIPS_SIZE_REDUCE_NAME

#define MICROMIPS_SIZE_REDUCE_NAME "MicroMips instruction size reduce pass"

AddiuspImmValue()

static bool AddiuspImmValue ( int64_t Value) static

CheckXWPInstr()

ConsecutiveInstr()

ConsecutiveRegisters()

GetImm()

ImmInRange()

INITIALIZE_PASS()

InRange()

static bool InRange ( int64_t Value, unsigned short Shift, int LBound, int HBound ) static

isMMSourceRegister()

isMMThreeBitGPRegister()

IsMovepDestinationReg()

IsMovepDestinationRegPair()

IsMovepSrcRegister()

STATISTIC()