[clang] [llvm] [IR] Do not store Function inside BlockAddress (PR #137958)

Nikita Popov via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 30 05:45:12 PDT 2025


================
@@ -32,7 +32,7 @@ void llvm::reduceFunctionsDeltaPass(Oracle &O, ReducerWorkItem &WorkItem) {
     // Intrinsics don't have function bodies that are useful to
     // reduce. Additionally, intrinsics may have additional operand
     // constraints. But, do drop intrinsics that are not referenced.
-    if ((!F.isIntrinsic() || F.use_empty()) && !hasAliasOrBlockAddressUse(F) &&
+    if ((!F.isIntrinsic() || F.use_empty()) && !hasAliasUse(F) &&
----------------
nikic wrote:

This removes the workaround introduced in https://github.com/llvm/llvm-project/commit/ae6a5c1d08d8ac251a2b3dc08b023126b21b1b53. It is no longer needed because arbitrary RAUW of functions is legal now.

https://github.com/llvm/llvm-project/pull/137958


More information about the cfe-commits mailing list