LLVM
15.0.0git
|
#include "Mips.h"
#include "MipsInstrInfo.h"
#include "MipsSubtarget.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/CodeGen/MachineFunctionPass.h"
#include "llvm/Support/Debug.h"
Go to the source code of this file.
Macros | |
#define | DEBUG_TYPE "micromips-reduce-size" |
#define | MICROMIPS_SIZE_REDUCE_NAME "MicroMips instruction size reduce pass" |
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.
Definition at line 22 of file MicroMipsSizeReduction.cpp.
#define MICROMIPS_SIZE_REDUCE_NAME "MicroMips instruction size reduce pass" |
Definition at line 23 of file MicroMipsSizeReduction.cpp.
|
static |
Definition at line 317 of file MicroMipsSizeReduction.cpp.
|
static |
Definition at line 351 of file MicroMipsSizeReduction.cpp.
|
static |
Definition at line 398 of file MicroMipsSizeReduction.cpp.
References ConsecutiveRegisters(), GetImm(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::getReg().
|
static |
Definition at line 378 of file MicroMipsSizeReduction.cpp.
References i, Registers, T1, and llvm::X86II::T8.
Referenced by ConsecutiveInstr().
|
static |
Definition at line 308 of file MicroMipsSizeReduction.cpp.
References MI.
Referenced by ConsecutiveInstr(), and llvm::ShapeT::deduceImm().
|
static |
Definition at line 337 of file MicroMipsSizeReduction.cpp.
INITIALIZE_PASS | ( | MicroMipsSizeReduce | , |
DEBUG_TYPE | , | ||
MICROMIPS_SIZE_REDUCE_NAME | , | ||
false | , | ||
false | |||
) | const & |
Definition at line 282 of file MicroMipsSizeReduction.cpp.
Definition at line 327 of file MicroMipsSizeReduction.cpp.
References Shift.
Referenced by llvm::ConstantFoldGetElementPtr().
|
static |
Definition at line 300 of file MicroMipsSizeReduction.cpp.
References llvm::MachineOperand::getReg(), and llvm::MachineOperand::isReg().
|
static |
Definition at line 293 of file MicroMipsSizeReduction.cpp.
References llvm::MachineOperand::getReg(), and llvm::MachineOperand::isReg().
|
static |
Definition at line 585 of file MicroMipsSizeReduction.cpp.
|
static |
Definition at line 596 of file MicroMipsSizeReduction.cpp.
|
static |
Definition at line 573 of file MicroMipsSizeReduction.cpp.
STATISTIC | ( | NumReduced | ) |