aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
diff options
context:
space:
mode:
authorYaxun (Sam) Liu <yaxun.liu@amd.com>2023-02-24 15:32:57 -0500
committerYaxun (Sam) Liu <yaxun.liu@amd.com>2023-02-28 12:41:56 -0500
commitfbec8f04ab39211f01366d8d255e942d7b76354b (patch)
tree305eadda421b9b8c14fab7bfea417f353c78ea82 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
parent83c0d6524805a3bc2c05273ebc5af800a2902546 (diff)
downloadllvm-fbec8f04ab39211f01366d8d255e942d7b76354b.zip
llvm-fbec8f04ab39211f01366d8d255e942d7b76354b.tar.gz
llvm-fbec8f04ab39211f01366d8d255e942d7b76354b.tar.bz2
[SimplifyCFG] Do not hoist/sink convergent function calls
Currently SimplifyCFG hoists/sink common instructions in then/else basic blocks when certain options are enabled, which is the case for default clang optimization pipelines for -O3. It tries to hoist/sink convergent function calls in divergent control flow, which causes incorrect ISA generated for GPU, e.g. https://github.com/ROCm-Developer-Tools/HIP/issues/3172 This patch fixes that by conservatively disable hoisting/sinking common convergent function calls in then/else blocks. Reviewed by: Artem Belevich Differential Revision: https://reviews.llvm.org/D144756
Diffstat (limited to 'llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp')
0 files changed, 0 insertions, 0 deletions