[PATCH] D96166: [NVPTX][NewPM] Temporarily disable NVPTX passes in new PM pipeline

Arthur Eubanks via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 8 13:54:42 PST 2021


aeubanks added inline comments.


================
Comment at: llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp:232-233
+  //       FunctionPassManager FPM(DebugPassManager);
+  //       FPM.addPass(NVVMReflectPass(Subtarget.getSmVersion()));
+  //       FPM.addPass(NVVMIntrRangePass(Subtarget.getSmVersion()));
+  //       PM.addPass(createModuleToFunctionPassAdaptor(std::move(FPM)));
----------------
tra wrote:
> If we didn't run `NVVMReflectPass` before with the new PM and didn't fail, I'm very surprised.
> This pass is necessary for using NVIDIA's `libdevice` bitcode. Without the pass we'd probably see compiler complaining about unresolved reference to `__nvvm_reflect` function.
> 
> `NVVMIntrRangePass` applies known range values to some CUDA functions which may allow compiler to optimize a bit better. Can be skipped w/o too much impact.
> 
> I don't know anything about `createModuleToFunctionPassAdaptor`.
https://reviews.llvm.org/D96291 to re-enable `NVVMReflectPass`, looks like only `NVVMIntrRangePass` is the issue (which makes sense).
`createModuleToFunctionPassAdaptor()` is just pass manager infra stuff (changes a function pass to a module pass).


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D96166/new/

https://reviews.llvm.org/D96166



More information about the llvm-commits mailing list