diff options
| author | Dan Bailey <dan@dneg.com> | 2011-11-03 19:24:46 +0000 |
|---|---|---|
| committer | Dan Bailey <dan@dneg.com> | 2011-11-03 19:24:46 +0000 |
| commit | b68515c23238841c16da2098b64073a3ba35e91d (patch) | |
| tree | 9629fec317747858559a6c78dad963ad55e36d9d /llvm/lib | |
| parent | 52d87a6f824ac6fd2ac2bc22b676b10d59e873a7 (diff) | |
| download | bcm5719-llvm-b68515c23238841c16da2098b64073a3ba35e91d.tar.gz bcm5719-llvm-b68515c23238841c16da2098b64073a3ba35e91d.zip | |
fixed global array handling for ptx to use the correct bit widths
llvm-svn: 143640
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/PTX/PTXAsmPrinter.cpp | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/llvm/lib/Target/PTX/PTXAsmPrinter.cpp b/llvm/lib/Target/PTX/PTXAsmPrinter.cpp index b2aa7b27edb..e329d5dcc7d 100644 --- a/llvm/lib/Target/PTX/PTXAsmPrinter.cpp +++ b/llvm/lib/Target/PTX/PTXAsmPrinter.cpp @@ -318,11 +318,7 @@ void PTXAsmPrinter::EmitVariableDeclaration(const GlobalVariable *gv) { if (PointerType::classof(gv->getType())) { PointerType* pointerTy = dyn_cast<PointerType>(gv->getType()); Type* elementTy = pointerTy->getElementType(); - - decl += ".b8 "; - decl += gvsym->getName(); - decl += "["; - + if (elementTy->isArrayTy()) { assert(elementTy->isArrayTy() && "Only pointers to arrays are supported"); @@ -343,15 +339,24 @@ void PTXAsmPrinter::EmitVariableDeclaration(const GlobalVariable *gv) { // FIXME: isPrimitiveType() == false for i16? assert(elementTy->isSingleValueType() && "Non-primitive types are not handled"); + + // Find the size of the element in bits + unsigned elementSize = elementTy->getPrimitiveSizeInBits(); - // Compute the size of the array, in bytes. - uint64_t arraySize = (elementTy->getPrimitiveSizeInBits() >> 3) - * numElements; - - decl += utostr(arraySize); + decl += ".b"; + decl += utostr(elementSize); + decl += " "; + decl += gvsym->getName(); + decl += "["; + decl += utostr(numElements); + decl += "]"; + } + else + { + decl += ".b8 "; + decl += gvsym->getName(); + decl += "[]"; } - - decl += "]"; // handle string constants (assume ConstantArray means string) |

