LLVM
8.0.1
|
This pass is used to reduce the size of instructions where applicable. More...
#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" |
Enumerations | |
enum | OperandTransfer |
Order of operands to transfer. More... | |
enum | ReduceType |
Reduction type. More... | |
This pass is used to reduce the size of instructions where applicable.
TODO: Implement microMIPS64 support.
Definition in file MicroMipsSizeReduction.cpp.
#define DEBUG_TYPE "micromips-reduce-size" |
Definition at line 23 of file MicroMipsSizeReduction.cpp.
Definition at line 24 of file MicroMipsSizeReduction.cpp.
enum OperandTransfer |
Order of operands to transfer.
Definition at line 33 of file MicroMipsSizeReduction.cpp.
enum ReduceType |
Reduction type.
Definition at line 46 of file MicroMipsSizeReduction.cpp.
|
static |
Definition at line 318 of file MicroMipsSizeReduction.cpp.
|
static |
Definition at line 352 of file MicroMipsSizeReduction.cpp.
References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), ImmInRange(), and RA.
|
static |
Definition at line 399 of file MicroMipsSizeReduction.cpp.
References ConsecutiveRegisters(), GetImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and MI.
Definition at line 379 of file MicroMipsSizeReduction.cpp.
References RA, llvm::SmallVectorBase::size(), T1, and llvm::X86II::T8.
Referenced by ConsecutiveInstr().
|
static |
Definition at line 309 of file MicroMipsSizeReduction.cpp.
References llvm::MachineOperand::getImm(), llvm::MachineInstr::getOperand(), and llvm::MachineOperand::isImm().
Referenced by ConsecutiveInstr(), and ImmInRange().
|
static |
Definition at line 338 of file MicroMipsSizeReduction.cpp.
References GetImm(), and InRange().
Referenced by CheckXWPInstr().
INITIALIZE_PASS | ( | MicroMipsSizeReduce | , |
DEBUG_TYPE | , | ||
MICROMIPS_SIZE_REDUCE_NAME | , | ||
false | , | ||
false | |||
) | const & |
Definition at line 283 of file MicroMipsSizeReduction.cpp.
Definition at line 328 of file MicroMipsSizeReduction.cpp.
Referenced by llvm::ConstantFoldGetElementPtr(), and ImmInRange().
|
static |
Definition at line 301 of file MicroMipsSizeReduction.cpp.
References llvm::MachineOperand::getReg(), and llvm::MachineOperand::isReg().
|
static |
Definition at line 294 of file MicroMipsSizeReduction.cpp.
References llvm::MachineOperand::getReg(), and llvm::MachineOperand::isReg().
Referenced by IsMovepDestinationRegPair().
Definition at line 586 of file MicroMipsSizeReduction.cpp.
Referenced by IsMovepDestinationRegPair().
Definition at line 597 of file MicroMipsSizeReduction.cpp.
References llvm::MachineInstrBuilder::add(), llvm::MachineFunction::begin(), llvm::BuildMI(), llvm::dbgs(), E, llvm::MachineFunction::end(), llvm::MachineBasicBlock::erase_instr(), llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getFlags(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getSubtarget(), I, llvm::MachineBasicBlock::instr_begin(), llvm::MachineBasicBlock::instr_end(), llvm::MachineInstr::isBundle(), isMMThreeBitGPRegister(), IsMovepDestinationReg(), IsMovepSrcRegister(), llvm::MachineInstr::isTransient(), LLVM_DEBUG, llvm_unreachable, MI, Modified, llvm::MachineInstr::setDesc(), and llvm::MachineInstrBuilder::setMIFlags().
Definition at line 574 of file MicroMipsSizeReduction.cpp.
Referenced by IsMovepDestinationRegPair().
STATISTIC | ( | NumReduced | ) |