These passes are causing numerical discrepancies after being added to
the pipeline. Disable while investigating.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Unit Tests
Event Timeline
llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp | ||
---|---|---|
232–233 | If we didn't run NVVMReflectPass before with the new PM and didn't fail, I'm very surprised. 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. |
llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp | ||
---|---|---|
232–233 | https://reviews.llvm.org/D96291 to re-enable NVVMReflectPass, looks like only NVVMIntrRangePass is the issue (which makes sense). |
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.