|
LLVM
4.0.0
|
#include "AMDGPU.h"#include "AMDGPUSubtarget.h"#include "SIInstrInfo.h"#include "llvm/CodeGen/LiveIntervalAnalysis.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/Support/Debug.h"#include "llvm/Support/raw_ostream.h"#include "llvm/Target/TargetMachine.h"Go to the source code of this file.
Macros | |
| #define | DEBUG_TYPE "si-fold-operands" |
| #define DEBUG_TYPE "si-fold-operands" |
Definition at line 23 of file SIFoldOperands.cpp.
|
static |
Definition at line 390 of file SIFoldOperands.cpp.
Referenced by tryConstantFoldOp().
|
static |
Definition at line 463 of file SIFoldOperands.cpp.
References llvm::tgtok::Def, llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::MachineRegisterInfo::getVRegDef(), llvm::MachineOperand::isImm(), llvm::MachineInstr::isMoveImmediate(), and llvm::MachineOperand::isReg().
Referenced by tryConstantFoldOp().
Definition at line 441 of file SIFoldOperands.cpp.
Referenced by tryConstantFoldOp().
|
static |
Definition at line 104 of file SIFoldOperands.cpp.
References llvm::AMDGPU::getNamedOperandIdx(), llvm::MCOperandInfo::OperandType, and llvm::MCInstrDesc::OpInfo.
|
static |
Definition at line 134 of file SIFoldOperands.cpp.
References llvm::MachineInstr::getDesc(), llvm::MCInstrDesc::getNumImplicitUses(), llvm::MCInstrDesc::getNumOperands(), llvm::MachineInstr::getNumOperands(), and llvm::MachineInstr::getOpcode().
|
static |
Definition at line 183 of file SIFoldOperands.cpp.
Referenced by tryAddToFoldList().
|
static |
Definition at line 263 of file SIFoldOperands.cpp.
References llvm::MachineOperand::isUndef().
|
static |
Definition at line 458 of file SIFoldOperands.cpp.
References llvm::MachineInstr::setDesc(), and stripExtraCopyOperands().
Referenced by tryConstantFoldOp().
|
static |
Remove any leftover implicit operands from mutating the instruction.
e.g. if we replace an s_and_b32 with a copy, we don't need the implicit scc def anymore.
Definition at line 448 of file SIFoldOperands.cpp.
References Desc, llvm::MachineInstr::getDesc(), llvm::MCInstrDesc::getNumImplicitDefs(), llvm::MCInstrDesc::getNumImplicitUses(), llvm::MCInstrDesc::getNumOperands(), llvm::MachineInstr::getNumOperands(), I, and llvm::MachineInstr::RemoveOperand().
Referenced by mutateCopyOp(), and tryConstantFoldOp().
|
static |
Definition at line 192 of file SIFoldOperands.cpp.
References llvm::TargetInstrInfo::CommuteAnyOperandIndex, llvm::SIInstrInfo::findCommutedOpIndices(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::isImm(), llvm::SIInstrInfo::isOperandLegal(), llvm::MachineOperand::isReg(), isUseMIInFoldList(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::MachineInstr::setDesc(), and llvm::MachineInstr::untieRegOperand().
|
static |
Definition at line 484 of file SIFoldOperands.cpp.
References llvm::MachineOperand::ChangeToImmediate(), evalBinaryInstruction(), llvm::MachineOperand::getImm(), getImmOrMaterializedImm(), getMovOpc(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::SIInstrInfo::getRegisterInfo(), llvm::MachineInstr::isCommutable(), llvm::MachineOperand::isImm(), llvm::SIRegisterInfo::isSGPRReg(), mutateCopyOp(), llvm::MachineInstr::RemoveOperand(), stripExtraCopyOperands(), and std::swap().
|
static |
Definition at line 155 of file SIFoldOperands.cpp.
References assert(), llvm::MachineOperand::ChangeToFrameIndex(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::MachineOperand::isReg(), llvm::TargetRegisterInfo::isVirtualRegister(), MI, and llvm::MachineOperand::substVirtReg().
1.8.6