[all-commits] [llvm/llvm-project] e680dd: [llvm][gvn-sink] Don't try to sink inline asm
Paul Kirth via All-commits
all-commits at lists.llvm.org
Sun May 4 10:19:05 PDT 2025
Branch: refs/heads/users/ilovepi/gvn-sink-bug
Home: https://github.com/llvm/llvm-project
Commit: e680ddb6ce28e9e831438fc47673b8c89462b231
https://github.com/llvm/llvm-project/commit/e680ddb6ce28e9e831438fc47673b8c89462b231
Author: Paul Kirth <paulkirth at google.com>
Date: 2025-05-04 (Sun, 04 May 2025)
Changed paths:
M llvm/lib/Transforms/Scalar/GVNSink.cpp
M llvm/lib/Transforms/Utils/Local.cpp
A llvm/test/Transforms/GVNSink/pr138345.ll
Log Message:
-----------
[llvm][gvn-sink] Don't try to sink inline asm
Fixes #138345. Before this patch, gvn-sink would try to sink inline
assembly statements. Other GVN passes avoid them (see
https://github.com/llvm/llvm-project/blob/b4fac94181c4cf17dbb7ecc2ae975712b0e4a6d1/llvm/lib/Transforms/Scalar/GVN.cpp#L2932
Similarly, gvn-sink should skip these instructions, since they are not
safe to move. We also update the early exit in
canReplaceOperandWithVariable, since it should have caught this case.
We keep the new logic in GVNSink.cpp, since its more efficient to skip
numbering those instructions.
The test added is reduced from a failure when compiling Fuchsia. There
were two distinct failure modes. One occurred when only running gvn-sink
alone, but a different failure happened when running
correlated-propagation afterwards.
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list