diff options
| author | Jingyue Wu <jingyue@google.com> | 2014-11-12 07:19:25 +0000 |
|---|---|---|
| committer | Jingyue Wu <jingyue@google.com> | 2014-11-12 07:19:25 +0000 |
| commit | a48273390c32e86bf226d7eb3891d207c854b3e0 (patch) | |
| tree | 74c4a65846412c5d3c7cb21959173d0483193e10 /llvm/lib/Target | |
| parent | 635a9b14fa91dcd6aedadb37aa232c24817e76cd (diff) | |
| download | bcm5719-llvm-a48273390c32e86bf226d7eb3891d207c854b3e0.tar.gz bcm5719-llvm-a48273390c32e86bf226d7eb3891d207c854b3e0.zip | |
Reverts r221772 which fails tests
llvm-svn: 221773
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp | 41 |
1 files changed, 2 insertions, 39 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp b/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp index 5aea7021e42..bcac6392a67 100644 --- a/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp @@ -36,14 +36,12 @@ void initializeNVPTXTTIPass(PassRegistry &); namespace { class NVPTXTTI final : public ImmutablePass, public TargetTransformInfo { - const NVPTXTargetLowering *TLI; public: - NVPTXTTI() : ImmutablePass(ID), TLI(nullptr) { + NVPTXTTI() : ImmutablePass(ID) { llvm_unreachable("This pass cannot be directly constructed"); } - NVPTXTTI(const NVPTXTargetMachine *TM) - : ImmutablePass(ID), TLI(TM->getSubtargetImpl()->getTargetLowering()) { + NVPTXTTI(const NVPTXTargetMachine *TM) : ImmutablePass(ID) { initializeNVPTXTTIPass(*PassRegistry::getPassRegistry()); } @@ -65,12 +63,6 @@ public: bool hasBranchDivergence() const override; - unsigned getArithmeticInstrCost( - unsigned Opcode, Type *Ty, OperandValueKind Opd1Info = OK_AnyValue, - OperandValueKind Opd2Info = OK_AnyValue, - OperandValueProperties Opd1PropInfo = OP_None, - OperandValueProperties Opd2PropInfo = OP_None) const override; - /// @} }; @@ -86,32 +78,3 @@ llvm::createNVPTXTargetTransformInfoPass(const NVPTXTargetMachine *TM) { } bool NVPTXTTI::hasBranchDivergence() const { return true; } - -unsigned NVPTXTTI::getArithmeticInstrCost( - unsigned Opcode, Type *Ty, OperandValueKind Opd1Info, - OperandValueKind Opd2Info, OperandValueProperties Opd1PropInfo, - OperandValueProperties Opd2PropInfo) const { - // Legalize the type. - std::pair<unsigned, MVT> LT = TLI->getTypeLegalizationCost(Ty); - - int ISD = TLI->InstructionOpcodeToISD(Opcode); - - switch (ISD) { - default: - return TargetTransformInfo::getArithmeticInstrCost( - Opcode, Ty, Opd1Info, Opd2Info, Opd1PropInfo, Opd2PropInfo); - case ISD::ADD: - case ISD::MUL: - case ISD::XOR: - case ISD::OR: - case ISD::AND: - // The machine code (SASS) simulates an i64 with two i32. Therefore, we - // estimate that arithmetic operations on i64 are twice as expensive as - // those on types that can fit into one machine register. - if (LT.second.SimpleTy == MVT::i64) - return 2 * LT.first; - // Delegate other cases to the basic TTI. - return TargetTransformInfo::getArithmeticInstrCost( - Opcode, Ty, Opd1Info, Opd2Info, Opd1PropInfo, Opd2PropInfo); - } -} |

