diff options
author | Yaxun (Sam) Liu <yaxun.liu@amd.com> | 2023-02-24 15:32:57 -0500 |
---|---|---|
committer | Yaxun (Sam) Liu <yaxun.liu@amd.com> | 2023-02-28 12:41:56 -0500 |
commit | fbec8f04ab39211f01366d8d255e942d7b76354b (patch) | |
tree | 305eadda421b9b8c14fab7bfea417f353c78ea82 /llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp | |
parent | 83c0d6524805a3bc2c05273ebc5af800a2902546 (diff) | |
download | llvm-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