[all-commits] [llvm/llvm-project] fbec8f: [SimplifyCFG] Do not hoist/sink convergent functio...
Yaxun (Sam) Liu via All-commits
all-commits at lists.llvm.org
Tue Feb 28 09:42:33 PST 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: fbec8f04ab39211f01366d8d255e942d7b76354b
https://github.com/llvm/llvm-project/commit/fbec8f04ab39211f01366d8d255e942d7b76354b
Author: Yaxun (Sam) Liu <yaxun.liu at amd.com>
Date: 2023-02-28 (Tue, 28 Feb 2023)
Changed paths:
M llvm/lib/Transforms/Utils/SimplifyCFG.cpp
M llvm/test/Transforms/SimplifyCFG/convergent.ll
Log Message:
-----------
[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
More information about the All-commits
mailing list