4 Commits

Author SHA1 Message Date
Antonio Frighetto
42c7cb6969 Reapply "[Inline][Cloning] Defer simplification after phi-nodes resolution"
Original commit: a61f9fe31750cee65c726fb51f1b14e31e177258

Multiple 2-stage buildbots were reporting failures. These issues have been
addressed separately.

Fixes: https://github.com/llvm/llvm-project/issues/87534.
2024-05-02 16:29:09 +02:00
Vitaly Buka
29c98e59cd Revert "[Inline][Cloning] Defer simplification after phi-nodes resolution" #87963
Reopens #87534.

Breaks multiple bots:
https://lab.llvm.org/buildbot/#/builders/168/builds/20028
https://lab.llvm.org/buildbot/#/builders/74/builds/27773

And reproducer in a61f9fe31750cee65c726fb51f1b14e31e177258.

This reverts commit a61f9fe31750cee65c726fb51f1b14e31e177258.
2024-04-24 14:51:54 -07:00
Antonio Frighetto
a61f9fe317 [Inline][Cloning] Defer simplification after phi-nodes resolution
A logic issue arose when inlining via `CloneAndPruneFunctionInto`,
which, besides cloning, performs instruction simplification as well.
By the time a new cloned instruction is being simplified, phi-nodes
are not remapped yet as the whole CFG needs to be processed first.
As `VMap` state at this stage is incomplete, `threadCmpOverPHI` and
variants could lead to unsound optimizations. This issue has been
addressed by performing basic constant folding while cloning, and
postponing instruction simplification once phi-nodes are revisited.

Fixes: https://github.com/llvm/llvm-project/issues/87534.
2024-04-24 16:55:33 +02:00
Antonio Frighetto
c1d00510ab [Inline][Cloning] Introduce test for PR87963 (NFC) 2024-04-24 16:55:33 +02:00