diff options
author | Hans Wennborg <hans@chromium.org> | 2019-11-07 11:00:02 +0100 |
---|---|---|
committer | Hans Wennborg <hans@chromium.org> | 2019-11-07 11:00:02 +0100 |
commit | eaff3004019f97c64c88ab76da6b25106b659b30 (patch) | |
tree | 06181ea12fc4d48e9bb74f34b4336c826ec067f3 /lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/testprog.cpp | |
parent | c5e4cf40ac459aae996180089a9831959ceb3d05 (diff) | |
download | bcm5719-llvm-eaff3004019f97c64c88ab76da6b25106b659b30.tar.gz bcm5719-llvm-eaff3004019f97c64c88ab76da6b25106b659b30.zip |
Revert f0c2a5a "[LV] Generalize conditions for sinking instrs for first order recurrences."
It broke Chromium, causing "Instruction does not dominate all uses!" errors.
See https://bugs.chromium.org/p/chromium/issues/detail?id=1022297#c1 for a
reproducer.
> If the recurrence PHI node has a single user, we can sink any
> instruction without side effects, given that all users are dominated by
> the instruction computing the incoming value of the next iteration
> ('Previous'). We can sink instructions that may cause traps, because
> that only causes the trap to occur later, but not on any new paths.
>
> With the relaxed check, we also have to make sure that we do not have a
> direct cycle (meaning PHI user == 'Previous), which indicates a
> reduction relation, which potentially gets missed by
> ReductionDescriptor.
>
> As follow-ups, we can also sink stores, iff they do not alias with
> other instructions we move them across and we could also support sinking
> chains of instructions and multiple users of the PHI.
>
> Fixes PR43398.
>
> Reviewers: hsaito, dcaballe, Ayal, rengolin
>
> Reviewed By: Ayal
>
> Differential Revision: https://reviews.llvm.org/D69228
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/testprog.cpp')
0 files changed, 0 insertions, 0 deletions