[clang] [CGObjC] Allow clang.arc.attachedcall on -O0 on AArch64 (PR #164875)
via cfe-commits
cfe-commits at lists.llvm.org
Thu Oct 23 12:04:59 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-clang
Author: AZero13 (AZero13)
<details>
<summary>Changes</summary>
It is supported in GlobalISel there. It is not supported on X86 GlobalISel.
---
Full diff: https://github.com/llvm/llvm-project/pull/164875.diff
1 Files Affected:
- (modified) clang/lib/CodeGen/CGObjC.cpp (+4-4)
``````````diff
diff --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp
index 10aad2e26938d..4920861327c4f 100644
--- a/clang/lib/CodeGen/CGObjC.cpp
+++ b/clang/lib/CodeGen/CGObjC.cpp
@@ -2417,7 +2417,7 @@ static llvm::Value *emitOptimizedARCReturnCall(llvm::Value *value,
// Add operand bundle "clang.arc.attachedcall" to the call instead of emitting
// retainRV or claimRV calls in the IR. We currently do this only when the
// optimization level isn't -O0 since global-isel, which is currently run at
- // -O0, doesn't know about the operand bundle.
+ // -O0, doesn't know about the operand bundle on x86_64.
ObjCEntrypoints &EPs = CGF.CGM.getObjCEntrypoints();
llvm::Function *&EP = IsRetainRV
? EPs.objc_retainAutoreleasedReturnValue
@@ -2431,9 +2431,9 @@ static llvm::Value *emitOptimizedARCReturnCall(llvm::Value *value,
// FIXME: Do this on all targets and at -O0 too. This can be enabled only if
// the target backend knows how to handle the operand bundle.
- if (CGF.CGM.getCodeGenOpts().OptimizationLevel > 0 &&
- (Arch == llvm::Triple::aarch64 || Arch == llvm::Triple::aarch64_32 ||
- Arch == llvm::Triple::x86_64)) {
+ if ((CGF.CGM.getCodeGenOpts().OptimizationLevel > 0 &&
+ Arch == llvm::Triple::x86_64) ||
+ (Arch == llvm::Triple::aarch64 || Arch == llvm::Triple::aarch64_32)) {
llvm::Value *bundleArgs[] = {EP};
llvm::OperandBundleDef OB("clang.arc.attachedcall", bundleArgs);
auto *oldCall = cast<llvm::CallBase>(value);
``````````
</details>
https://github.com/llvm/llvm-project/pull/164875
More information about the cfe-commits
mailing list