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());