[all-commits] [llvm/llvm-project] 42c7cb: Reapply "[Inline][Cloning] Defer simplification af...
Antonio Frighetto via All-commits
all-commits at lists.llvm.org
Thu May 2 07:33:11 PDT 2024
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 42c7cb69694d274e46bb98d156b9be31b308b62c
https://github.com/llvm/llvm-project/commit/42c7cb69694d274e46bb98d156b9be31b308b62c
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2024-05-02 (Thu, 02 May 2024)
Changed paths:
M llvm/lib/Transforms/Utils/CloneFunction.cpp
M llvm/test/Transforms/Inline/inline-deferred-instsimplify.ll
M llvm/test/Transforms/Inline/prof-update-sample-alwaysinline.ll
M llvm/test/Transforms/Inline/prof-update-sample.ll
Log Message:
-----------
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.
Commit: 1bb929833b18db4a26a4d145d7270597cb5d48ce
https://github.com/llvm/llvm-project/commit/1bb929833b18db4a26a4d145d7270597cb5d48ce
Author: Antonio Frighetto <me at antoniofrighetto.com>
Date: 2024-05-02 (Thu, 02 May 2024)
Changed paths:
M llvm/lib/Transforms/Utils/CloneFunction.cpp
A llvm/test/Transforms/Inline/inline-drop-attributes.ll
Log Message:
-----------
[Inline][Cloning] Drop incompatible attributes from `NewFunc`
Performing `instSimplify` while cloning is unsafe due to incomplete
remapping (as reported in #87534). Ideally, `instSimplify` ought to
reason on the updated newly-cloned function, after returns have been
rewritten and callee entry basic block / call-site have been fixed up.
This is in contrast to `CloneAndPruneIntoFromInst` behaviour, which
is inherently expected to clone basic blocks, with pruning on top of
– if any –, and not actually fixing up returns / CFG, which should be
up to the Inliner. We may solve this by letting `instSimplify` work on
the newly-cloned function, while maintaining old function attributes,
so as to avoid inconsistencies between the yet-to-be-solved return
type, and new function ret type attributes.
Compare: https://github.com/llvm/llvm-project/compare/8c0937f5629e...1bb929833b18
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list