|
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 | ) |
1.8.13