[PATCH] D11663: [NVPTX] Added an option to run NVVMReflect pass.

Artem Belevich tra at google.com
Thu Jul 30 14:48:10 PDT 2015


tra created this revision.
tra added reviewers: echristo, jholewinski.
tra added a subscriber: llvm-commits.
Herald added a subscriber: jholewinski.

The pass is needed to remove __nvvm_reflect calls after we link in libdevice bitcode that comes with CUDA.
http://llvm.org/docs/NVPTXUsage.html#linking-with-libdevice

Internalize and GDCE will be done in the front-end.

http://reviews.llvm.org/D11663

Files:
  lib/Target/NVPTX/NVPTXTargetMachine.cpp

Index: lib/Target/NVPTX/NVPTXTargetMachine.cpp
===================================================================
--- lib/Target/NVPTX/NVPTXTargetMachine.cpp
+++ lib/Target/NVPTX/NVPTXTargetMachine.cpp
@@ -76,6 +76,11 @@
   initializeNVPTXLowerAggrCopiesPass(PR);
 }
 
+static cl::opt<bool> NVPTXEnableReflect(
+    "nvptx-enable-reflect", cl::init(false), cl::Hidden,
+    cl::desc("Run NVVM reflection pass before other standard passes, "
+             "disabled by default"));
+
 static std::string computeDataLayout(bool is64Bit) {
   std::string Ret = "e";
 
@@ -176,6 +181,8 @@
   disablePass(&MachineCopyPropagationID);
   disablePass(&TailDuplicateID);
 
+  if (NVPTXEnableReflect)
+    addPass(createNVVMReflectPass());
   addPass(createNVPTXImageOptimizerPass());
   addPass(createNVPTXAssignValidGlobalNamesPass());
   addPass(createGenericToNVVMPass());


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11663.31076.patch
Type: text/x-patch
Size: 867 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150730/eae62e15/attachment.bin>


More information about the llvm-commits mailing list