diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-07-18 22:22:41 +0200 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-07-19 15:05:45 +0200 |
commit | d12ec0f752e7f2c7f7252539da2d124264ec33f7 (patch) | |
tree | a53ce188ac999972ec4b890b1e45fba523a3b9be /llvm/lib/Transforms/Utils/PredicateInfo.cpp | |
parent | 3504acc33e8b9ddd7de71d75cdc329a14dbf58d9 (diff) | |
download | llvm-d12ec0f752e7f2c7f7252539da2d124264ec33f7.zip llvm-d12ec0f752e7f2c7f7252539da2d124264ec33f7.tar.gz llvm-d12ec0f752e7f2c7f7252539da2d124264ec33f7.tar.bz2 |
[InstCombine] Fix store merge worklist management (PR46680)
Fixes https://bugs.llvm.org/show_bug.cgi?id=46680.
Just like insertions through IRBuilder, InsertNewInstBefore()
should be using the deferred worklist mechanism, so that processing
of newly added instructions is prioritized.
There's one side-effect of the worklist order change which could be
classified as a regression. An add op gets pushed through a select
that at the time is not a umax. We could add a reverse transform
that tries to push adds in the reverse direction to restore a min/max,
but that seems like a sure way of getting infinite loops... Seems
like something that should best wait on min/max intrinsics.
Differential Revision: https://reviews.llvm.org/D84109
Diffstat (limited to 'llvm/lib/Transforms/Utils/PredicateInfo.cpp')
0 files changed, 0 insertions, 0 deletions