diff options
| author | Antonio Frighetto <me@antoniofrighetto.com> | 2024-04-29 17:53:29 +0200 |
|---|---|---|
| committer | Antonio Frighetto <me@antoniofrighetto.com> | 2024-05-02 16:29:09 +0200 |
| commit | 1bb929833b18db4a26a4d145d7270597cb5d48ce (patch) | |
| tree | 5358b1e4e25b671e5ff317620efa7f7a5ef8de96 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | 42c7cb69694d274e46bb98d156b9be31b308b62c (diff) | |
[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.
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
