[PATCH] D99118: [SROA] Speculate around PHIs: allow load to be in a unique-successor unique-predecessor block
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 22 15:00:12 PDT 2021
lebedev.ri created this revision.
lebedev.ri added reviewers: rampitec, arsenm, spatel, Carrot.
lebedev.ri added a project: LLVM.
Herald added subscribers: hiraditya, arichardson.
lebedev.ri requested review of this revision.
Herald added a subscriber: wdng.
There's `2009-02-20-InstCombine-SROA.ll` InstCombine test that uses SROA,
and it breaks if i change InstCombine to split up `inttoptr` into `bitcast(inttoptr)`.
The cause is, if we have a PHI and a load of that PHI, InstCombine may sink the load
into unique successor block. And `isSafePHIToSpeculate()` bails out on that.
So extend `isSafePHIToSpeculate()` to support traversing through such blocks.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D99118
Files:
llvm/lib/Transforms/Scalar/SROA.cpp
llvm/test/Transforms/SROA/2009-02-20-InstCombine-SROA.ll
llvm/test/Transforms/SROA/phi-with-duplicate-pred.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D99118.332441.patch
Type: text/x-patch
Size: 16302 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210322/f62decdf/attachment.bin>
More information about the llvm-commits
mailing list