|
LLVM
3.7.0
|
#include "AMDGPU.h"#include "AMDGPUSubtarget.h"#include "SIInstrInfo.h"#include "llvm/CodeGen/LiveIntervalAnalysis.h"#include "llvm/CodeGen/MachineDominators.h"#include "llvm/CodeGen/MachineFunctionPass.h"#include "llvm/CodeGen/MachineInstrBuilder.h"#include "llvm/CodeGen/MachineRegisterInfo.h"#include "llvm/IR/Function.h"#include "llvm/IR/LLVMContext.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" |
Functions | |
| INITIALIZE_PASS_BEGIN (SIFoldOperands, DEBUG_TYPE,"SI Fold Operands", false, false) INITIALIZE_PASS_END(SIFoldOperands | |
| static bool | isSafeToFold (unsigned Opcode) |
| static bool | updateOperand (FoldCandidate &Fold, const TargetRegisterInfo &TRI) |
| static bool | isUseMIInFoldList (const std::vector< FoldCandidate > &FoldList, const MachineInstr *MI) |
| static bool | tryAddToFoldList (std::vector< FoldCandidate > &FoldList, MachineInstr *MI, unsigned OpNo, MachineOperand *OpToFold, const SIInstrInfo *TII) |
Variables | |
| DEBUG_TYPE | |
| SI Fold | Operands |
| SI Fold | false |
| #define DEBUG_TYPE "si-fold-operands" |
Definition at line 26 of file SIFoldOperands.cpp.
| INITIALIZE_PASS_BEGIN | ( | SIFoldOperands | , |
| DEBUG_TYPE | , | ||
| "SI Fold Operands" | , | ||
| false | , | ||
| false | |||
| ) |
Definition at line 92 of file SIFoldOperands.cpp.
References llvm::TargetOpcode::COPY.
|
static |
Definition at line 129 of file SIFoldOperands.cpp.
Referenced by tryAddToFoldList().
|
static |
Definition at line 138 of file SIFoldOperands.cpp.
References llvm::SIInstrInfo::commuteInstruction(), llvm::SIInstrInfo::findCommutedOpIndices(), llvm::AMDGPU::getNamedOperandIdx(), llvm::MachineInstr::getOpcode(), llvm::SIInstrInfo::isOperandLegal(), isUseMIInFoldList(), llvm::MachineInstr::setDesc(), and llvm::MachineInstr::untieRegOperand().
|
static |
Definition at line 106 of file SIFoldOperands.cpp.
References llvm::MachineOperand::ChangeToImmediate(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), llvm::MachineOperand::getSubReg(), llvm::MachineOperand::isReg(), llvm::TargetRegisterInfo::isVirtualRegister(), llvm::AArch64CC::MI, and llvm::MachineOperand::substVirtReg().
| DEBUG_TYPE |
Definition at line 81 of file SIFoldOperands.cpp.
| SI Fold false |
Definition at line 81 of file SIFoldOperands.cpp.
| SI Fold Operands |
Definition at line 81 of file SIFoldOperands.cpp.
Referenced by llvm::R600InstrInfo::buildSlotOfVectorInstruction(), llvm::ConstantFoldCall(), deleteDeadInstruction(), EvaluateExpression(), llvm::ScalarEvolution::getAddRecExpr(), llvm::ScalarEvolution::getMulExpr(), llvm::MachineInstr::getOperand(), llvm::ScalarEvolution::getTruncateExpr(), llvm::ScalarEvolution::getUDivExactExpr(), llvm::ScalarEvolution::getUDivExpr(), llvm::MachineInstr::operands_begin(), llvm::MachineInstr::operands_end(), RemoveDeadConstant(), llvm::MachineInstr::RemoveOperand(), llvm::SelectionDAG::UnrollVectorOp(), llvm::SCEVParameterRewriter::visitAddExpr(), llvm::SCEVApplyRewriter::visitAddExpr(), llvm::SCEVParameterRewriter::visitAddRecExpr(), llvm::SCEVApplyRewriter::visitAddRecExpr(), llvm::InstCombiner::visitCallInst(), llvm::SCEVParameterRewriter::visitMulExpr(), llvm::SCEVApplyRewriter::visitMulExpr(), llvm::SCEVParameterRewriter::visitSMaxExpr(), llvm::SCEVApplyRewriter::visitSMaxExpr(), llvm::SCEVParameterRewriter::visitUMaxExpr(), and llvm::SCEVApplyRewriter::visitUMaxExpr().
1.8.6