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