Go to the source code of this file.
|
| | llvm |
| | Compute iterated dominance frontiers using a linear time algorithm.
|
| |
|
| | STATISTIC (NumInstructionsShrunk,"Number of 64-bit instruction reduced to 32-bit.") |
| |
| | STATISTIC (NumLiteralConstantsFolded,"Number of literal constants folded into 32-bit instructions.") |
| |
| void | llvm::initializeSIShrinkInstructionsPass (PassRegistry &) |
| |
| | INITIALIZE_PASS_BEGIN (SIShrinkInstructions, DEBUG_TYPE,"SI Lower il Copies", false, false) INITIALIZE_PASS_END(SIShrinkInstructions |
| |
| static bool | isVGPR (const MachineOperand *MO, const SIRegisterInfo &TRI, const MachineRegisterInfo &MRI) |
| |
| static bool | canShrink (MachineInstr &MI, const SIInstrInfo *TII, const SIRegisterInfo &TRI, const MachineRegisterInfo &MRI) |
| |
| static void | foldImmediates (MachineInstr &MI, const SIInstrInfo *TII, MachineRegisterInfo &MRI, bool TryToCommute=true) |
| | This function checks MI for operands defined by a move immediate instruction and then folds the literal constant into the instruction if it can. More...
|
| |
This function checks MI for operands defined by a move immediate instruction and then folds the literal constant into the instruction if it can.
This function assumes that MI is a VOP1, VOP2, or VOPC instruction and will only fold literal constants if we are still in SSA.
Definition at line 138 of file SIShrinkInstructions.cpp.
References llvm::MachineOperand::ChangeToImmediate(), llvm::SIInstrInfo::commuteInstruction(), llvm::tgtok::Def, llvm::MachineInstr::eraseFromParent(), llvm::MachineOperand::getImm(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::SIInstrInfo::getOpSize(), llvm::SIInstrInfo::getRegisterInfo(), llvm::MachineRegisterInfo::getUniqueVRegDef(), llvm::MachineRegisterInfo::hasOneUse(), llvm::MachineInstr::isCommutable(), llvm::MachineOperand::isImm(), llvm::SIInstrInfo::isLiteralConstant(), llvm::MachineInstr::isMoveImmediate(), llvm::MachineRegisterInfo::isSSA(), llvm::isUInt< 32 >(), isVGPR(), llvm::SIInstrInfo::isVOP1(), llvm::SIInstrInfo::isVOP2(), llvm::SIInstrInfo::isVOPC(), and llvm::MachineRegisterInfo::use_empty().
| STATISTIC |
( |
NumInstructionsShrunk |
, |
|
|
"Number of 64-bit instruction reduced to 32-bit." |
|
|
) |
| |
| STATISTIC |
( |
NumLiteralConstantsFolded |
, |
|
|
"Number of literal constants folded into 32-bit instructions." |
|
|
) |
| |