summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
diff options
context:
space:
mode:
authorDavid Majnemer <david.majnemer@gmail.com>2016-12-22 00:51:59 +0000
committerDavid Majnemer <david.majnemer@gmail.com>2016-12-22 00:51:59 +0000
commit5fa7d48bb804dd507e64086636f2f725d4e3af71 (patch)
treef9034203dd4b2b4993a514510a47c7e20effe0d2 /llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
parent1eadba1c8c813aa7f53c784711ace70daa73b474 (diff)
downloadbcm5719-llvm-5fa7d48bb804dd507e64086636f2f725d4e3af71.tar.gz
bcm5719-llvm-5fa7d48bb804dd507e64086636f2f725d4e3af71.zip
[NVVMIntrRange] Only set range metadata if none is already present
The range metadata inserted by NVVMIntrRange is pessimistic, range metadata already present could be more precise. llvm-svn: 290294
Diffstat (limited to 'llvm/lib/Target/NVPTX/NVVMIntrRange.cpp')
-rw-r--r--llvm/lib/Target/NVPTX/NVVMIntrRange.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp b/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
index b9c02c43114..9c71a2ee165 100644
--- a/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
+++ b/llvm/lib/Target/NVPTX/NVVMIntrRange.cpp
@@ -65,6 +65,10 @@ INITIALIZE_PASS(NVVMIntrRange, "nvvm-intr-range",
// Adds the passed-in [Low,High) range information as metadata to the
// passed-in call instruction.
static bool addRangeMetadata(uint64_t Low, uint64_t High, CallInst *C) {
+ // This call already has range metadata, nothing to do.
+ if (C->getMetadata(LLVMContext::MD_range))
+ return false;
+
LLVMContext &Context = C->getParent()->getContext();
IntegerType *Int32Ty = Type::getInt32Ty(Context);
Metadata *LowAndHigh[] = {
OpenPOWER on IntegriCloud