From: Eric Christopher Date: Thu, 19 Feb 2015 00:08:23 +0000 (+0000) Subject: Remove all use of getDrvInterface off of NVPTXSubtarget and clean X-Git-Tag: llvmorg-3.7.0-rc1~11564 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=beffc4e84fd5710d4000664425addfda8760ebc2;p=platform%2Fupstream%2Fllvm.git Remove all use of getDrvInterface off of NVPTXSubtarget and clean up code accordingly. Delete code that was checking for all cases of an enum. llvm-svn: 229786 --- diff --git a/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp b/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp index 16e7d5b..b87aec3 100644 --- a/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp @@ -164,7 +164,7 @@ void NVPTXAsmPrinter::emitLineNumberAsDotLoc(const MachineInstr &MI) { void NVPTXAsmPrinter::EmitInstruction(const MachineInstr *MI) { SmallString<128> Str; raw_svector_ostream OS(Str); - if (nvptxSubtarget->getDrvInterface() == NVPTX::CUDA) + if (static_cast(TM).getDrvInterface() == NVPTX::CUDA) emitLineNumberAsDotLoc(*MI); MCInst Inst; @@ -908,9 +908,10 @@ void NVPTXAsmPrinter::emitHeader(Module &M, raw_ostream &O, O << ".target "; O << STI.getTargetName(); - if (STI.getDrvInterface() == NVPTX::NVCL) + const NVPTXTargetMachine &TM = static_cast(TM); + if (TM.getDrvInterface() == NVPTX::NVCL) O << ", texmode_independent"; - if (STI.getDrvInterface() == NVPTX::CUDA) { + else { if (!STI.hasDouble()) O << ", map_f64_to_f32"; } @@ -921,7 +922,7 @@ void NVPTXAsmPrinter::emitHeader(Module &M, raw_ostream &O, O << "\n"; O << ".address_size "; - if (static_cast(TM).is64Bit()) + if (TM.is64Bit()) O << "64"; else O << "32"; @@ -992,7 +993,7 @@ bool NVPTXAsmPrinter::doFinalization(Module &M) { void NVPTXAsmPrinter::emitLinkageDirective(const GlobalValue *V, raw_ostream &O) { - if (nvptxSubtarget->getDrvInterface() == NVPTX::CUDA) { + if (static_cast(TM).getDrvInterface() == NVPTX::CUDA) { if (V->hasExternalLinkage()) { if (isa(V)) { const GlobalVariable *GVar = cast(V); @@ -1413,39 +1414,11 @@ static unsigned int getOpenCLAlignment(const DataLayout *TD, Type *Ty) { void NVPTXAsmPrinter::printParamName(Function::const_arg_iterator I, int paramIndex, raw_ostream &O) { - if ((nvptxSubtarget->getDrvInterface() == NVPTX::NVCL) || - (nvptxSubtarget->getDrvInterface() == NVPTX::CUDA)) - O << *getSymbol(I->getParent()) << "_param_" << paramIndex; - else { - std::string argName = I->getName(); - const char *p = argName.c_str(); - while (*p) { - if (*p == '.') - O << "_"; - else - O << *p; - p++; - } - } + O << *getSymbol(I->getParent()) << "_param_" << paramIndex; } void NVPTXAsmPrinter::printParamName(int paramIndex, raw_ostream &O) { - Function::const_arg_iterator I, E; - int i = 0; - - if ((nvptxSubtarget->getDrvInterface() == NVPTX::NVCL) || - (nvptxSubtarget->getDrvInterface() == NVPTX::CUDA)) { - O << *CurrentFnSym << "_param_" << paramIndex; - return; - } - - for (I = F->arg_begin(), E = F->arg_end(); I != E; ++I, i++) { - if (i == paramIndex) { - printParamName(I, paramIndex, O); - return; - } - } - llvm_unreachable("paramIndex out of bound"); + O << *CurrentFnSym << "_param_" << paramIndex; } void NVPTXAsmPrinter::emitFunctionParamList(const Function *F, raw_ostream &O) { @@ -1522,7 +1495,8 @@ void NVPTXAsmPrinter::emitFunctionParamList(const Function *F, raw_ostream &O) { // Special handling for pointer arguments to kernel O << "\t.param .u" << thePointerTy.getSizeInBits() << " "; - if (nvptxSubtarget->getDrvInterface() != NVPTX::CUDA) { + if (static_cast(TM).getDrvInterface() != + NVPTX::CUDA) { Type *ETy = PTy->getElementType(); int addrSpace = PTy->getAddressSpace(); switch (addrSpace) { diff --git a/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp b/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp index b7f53c7..e83f735 100644 --- a/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp @@ -16,6 +16,7 @@ #include "NVPTX.h" #include "NVPTXMachineFunctionInfo.h" #include "NVPTXSubtarget.h" +#include "NVPTXTargetMachine.h" #include "llvm/ADT/DenseSet.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineFunctionPass.h" @@ -142,8 +143,9 @@ findIndexForHandle(MachineOperand &Op, MachineFunction &MF, unsigned &Idx) { case NVPTX::LD_i64_avar: { // The handle is a parameter value being loaded, replace with the // parameter symbol - const NVPTXSubtarget &ST = MF.getTarget().getSubtarget(); - if (ST.getDrvInterface() == NVPTX::CUDA) { + const NVPTXTargetMachine &TM = + static_cast(MF.getTarget()); + if (TM.getDrvInterface() == NVPTX::CUDA) { // For CUDA, we preserve the param loads coming from function arguments return false; } diff --git a/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp b/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp index c22418c..8573856 100644 --- a/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXSubtarget.cpp @@ -51,6 +51,12 @@ NVPTXSubtarget::NVPTXSubtarget(const std::string &TT, const std::string &CPU, InstrInfo(initializeSubtargetDependencies(CPU, FS)), TLInfo(TM, *this), TSInfo(TM.getDataLayout()), FrameLowering(*this) {} -NVPTX::DrvInterface NVPTXSubtarget::getDrvInterface() const { - return TM.getDrvInterface(); +bool NVPTXSubtarget::hasImageHandles() const { + // Enable handles for Kepler+, where CUDA supports indirect surfaces and + // textures + if (TM.getDrvInterface() == NVPTX::CUDA) + return (SmVersion >= 30); + + // Disabled, otherwise + return false; } diff --git a/llvm/lib/Target/NVPTX/NVPTXSubtarget.h b/llvm/lib/Target/NVPTX/NVPTXSubtarget.h index 299bb93..0a31fb0 100644 --- a/llvm/lib/Target/NVPTX/NVPTXSubtarget.h +++ b/llvm/lib/Target/NVPTX/NVPTXSubtarget.h @@ -94,20 +94,10 @@ public: } inline bool hasROT32() const { return hasHWROT32() || hasSWROT32(); } inline bool hasROT64() const { return SmVersion >= 20; } - - bool hasImageHandles() const { - // Enable handles for Kepler+, where CUDA supports indirect surfaces and - // textures - if (getDrvInterface() == NVPTX::CUDA) - return (SmVersion >= 30); - - // Disabled, otherwise - return false; - } + bool hasImageHandles() const; bool is64Bit() const { return Is64Bit; } unsigned int getSmVersion() const { return SmVersion; } - NVPTX::DrvInterface getDrvInterface() const; std::string getTargetName() const { return TargetName; } unsigned getPTXVersion() const { return PTXVersion; }