diff options
| author | Jingyue Wu <jingyue@google.com> | 2014-12-17 17:59:04 +0000 |
|---|---|---|
| committer | Jingyue Wu <jingyue@google.com> | 2014-12-17 17:59:04 +0000 |
| commit | e4c9cf04f5be0547938e5442caa10a3f56073a8f (patch) | |
| tree | d7f7b1bfd6859446b2172c1a0e78949a0db1f923 /llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | |
| parent | 0e60abcf71a58f0ec0c95585e2a3fd1941cd428e (diff) | |
| download | bcm5719-llvm-e4c9cf04f5be0547938e5442caa10a3f56073a8f.tar.gz bcm5719-llvm-e4c9cf04f5be0547938e5442caa10a3f56073a8f.zip | |
[NVPTX] Fix bugs related to isSingleValueType
Summary:
With isSingleValueType starting to treat vector types as single-value types,
code that uses this interface needs to be updated.
Test Plan:
vector-global.ll
nvcl-param-align.ll
Reviewers: jholewinski
Reviewed By: jholewinski
Subscribers: llvm-commits, meheff, eliben, jholewinski
Differential Revision: http://reviews.llvm.org/D6573
llvm-svn: 224440
Diffstat (limited to 'llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp')
| -rw-r--r-- | llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp | 15 |
1 files changed, 2 insertions, 13 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp b/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp index abe117d0e5b..78fbd456187 100644 --- a/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp @@ -1128,7 +1128,7 @@ void NVPTXAsmPrinter::printModuleLevelGV(const GlobalVariable *GVar, else O << " .align " << GVar->getAlignment(); - if (ETy->isSingleValueType()) { + if (ETy->isFloatingPointTy() || ETy->isIntegerTy() || ETy->isPointerTy()) { O << " ."; // Special case: ABI requires that we use .u8 for predicates if (ETy->isIntegerTy(1)) @@ -1310,7 +1310,7 @@ void NVPTXAsmPrinter::emitPTXGlobalVariable(const GlobalVariable *GVar, else O << " .align " << GVar->getAlignment(); - if (ETy->isSingleValueType()) { + if (ETy->isFloatingPointTy() || ETy->isIntegerTy() || ETy->isPointerTy()) { O << " ."; O << getPTXFundamentalTypeStr(ETy); O << " "; @@ -1349,17 +1349,6 @@ static unsigned int getOpenCLAlignment(const DataLayout *TD, Type *Ty) { if (ATy) return getOpenCLAlignment(TD, ATy->getElementType()); - const VectorType *VTy = dyn_cast<VectorType>(Ty); - if (VTy) { - Type *ETy = VTy->getElementType(); - unsigned int numE = VTy->getNumElements(); - unsigned int alignE = TD->getPrefTypeAlignment(ETy); - if (numE == 3) - return 4 * alignE; - else - return numE * alignE; - } - const StructType *STy = dyn_cast<StructType>(Ty); if (STy) { unsigned int alignStruct = 1; |

