aboutsummaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2024-12-12 17:20:48 -0800
committerGitHub <noreply@github.com>2024-12-12 17:20:48 -0800
commit768754807f17754fb450ec672779b827ad5df4b4 (patch)
treea4a08f8a5cea4202d494282608b36a60b4cecf96 /lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
parent38eaea73cab3f427edd16d60035cf126f9a99cd0 (diff)
downloadllvm-768754807f17754fb450ec672779b827ad5df4b4.zip
llvm-768754807f17754fb450ec672779b827ad5df4b4.tar.gz
llvm-768754807f17754fb450ec672779b827ad5df4b4.tar.bz2
[InstCombine] Optimistically allow multiple shufflevector uses in foldOpPhi (#114278)
We would like to optimize situations of the form that happen after loop vectorization+SROA: ``` loop: %phi = phi zeroinitializer, %interleaved %deinterleave_a = shufflevector %phi, poison ; pick half of the lanes %deinterleave_b = shufflevector %phi, posion ; pick remaining lanes ... %a = ... %b = ... %interleaved = shufflevector %a, %b ; interleave lanes of a+b ``` where the interleave and de-interleave shuffle operations cancel each other out. This could be handled by `foldOpPhi` but does not currently work because it does not proceed when there are multiple uses of the `Phi` operation. This extends `foldOpPhi` to allow multiple `shufflevector` uses when they are shown to simplify for all `Phi` input values.
Diffstat (limited to 'lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp')
0 files changed, 0 insertions, 0 deletions