summaryrefslogtreecommitdiff
path: root/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp')
-rw-r--r--llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp23
1 files changed, 10 insertions, 13 deletions
diff --git a/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp b/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
index 9078ff8cfb97..a9a5eae42c1d 100644
--- a/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
+++ b/llvm/lib/Target/NVPTX/NVPTXGenericToNVVM.cpp
@@ -74,19 +74,16 @@ bool GenericToNVVM::runOnModule(Module &M) {
// of original global variable and its clone is placed in the GVMap for later
// use.
- for (Module::global_iterator I = M.global_begin(), E = M.global_end();
- I != E;) {
- GlobalVariable *GV = &*I++;
- if (GV->getType()->getAddressSpace() == llvm::ADDRESS_SPACE_GENERIC &&
- !llvm::isTexture(*GV) && !llvm::isSurface(*GV) &&
- !llvm::isSampler(*GV) && !GV->getName().startswith("llvm.")) {
+ for (GlobalVariable &GV : llvm::make_early_inc_range(M.globals())) {
+ if (GV.getType()->getAddressSpace() == llvm::ADDRESS_SPACE_GENERIC &&
+ !llvm::isTexture(GV) && !llvm::isSurface(GV) && !llvm::isSampler(GV) &&
+ !GV.getName().startswith("llvm.")) {
GlobalVariable *NewGV = new GlobalVariable(
- M, GV->getValueType(), GV->isConstant(),
- GV->getLinkage(),
- GV->hasInitializer() ? GV->getInitializer() : nullptr,
- "", GV, GV->getThreadLocalMode(), llvm::ADDRESS_SPACE_GLOBAL);
- NewGV->copyAttributesFrom(GV);
- GVMap[GV] = NewGV;
+ M, GV.getValueType(), GV.isConstant(), GV.getLinkage(),
+ GV.hasInitializer() ? GV.getInitializer() : nullptr, "", &GV,
+ GV.getThreadLocalMode(), llvm::ADDRESS_SPACE_GLOBAL);
+ NewGV->copyAttributesFrom(&GV);
+ GVMap[&GV] = NewGV;
}
}
@@ -215,7 +212,7 @@ Value *GenericToNVVM::remapConstantVectorOrConstantAggregate(
// If any of the elements has been modified, construct the equivalent
// vector or aggregate value with a set instructions and the converted
// elements.
- Value *NewValue = UndefValue::get(C->getType());
+ Value *NewValue = PoisonValue::get(C->getType());
if (isa<ConstantVector>(C)) {
for (unsigned i = 0; i < NumOperands; ++i) {
Value *Idx = ConstantInt::get(Type::getInt32Ty(M->getContext()), i);