[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