[clang] 850d96e - [ObjC] Also enable ARC attachedcall operand bundle for arm64_32. (#138677)
via cfe-commits
cfe-commits at lists.llvm.org
Thu May 8 08:48:23 PDT 2025
Author: Marina Taylor
Date: 2025-05-08T16:48:18+01:00
New Revision: 850d96e63a611c46313a5448cd49197d9295ce5f
URL: https://github.com/llvm/llvm-project/commit/850d96e63a611c46313a5448cd49197d9295ce5f
DIFF: https://github.com/llvm/llvm-project/commit/850d96e63a611c46313a5448cd49197d9295ce5f.diff
LOG: [ObjC] Also enable ARC attachedcall operand bundle for arm64_32. (#138677)
It was enabled for "aarch64", which covers arm64e but not arm64_32.
Co-authored-by: Ahmed Bougacha <ahmed at bougacha.org>
Added:
Modified:
clang/lib/CodeGen/CGObjC.cpp
clang/test/CodeGenObjCXX/arc-rv-attr.mm
Removed:
################################################################################
diff --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp
index 27c7c2fa9cba1..73071bc60901b 100644
--- a/clang/lib/CodeGen/CGObjC.cpp
+++ b/clang/lib/CodeGen/CGObjC.cpp
@@ -2386,7 +2386,8 @@ 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::x86_64)) {
+ (Arch == llvm::Triple::aarch64 || Arch == llvm::Triple::aarch64_32 ||
+ Arch == llvm::Triple::x86_64)) {
llvm::Value *bundleArgs[] = {EP};
llvm::OperandBundleDef OB("clang.arc.attachedcall", bundleArgs);
auto *oldCall = cast<llvm::CallBase>(value);
diff --git a/clang/test/CodeGenObjCXX/arc-rv-attr.mm b/clang/test/CodeGenObjCXX/arc-rv-attr.mm
index c6a2ffb06bf34..9ddacbf0762d7 100644
--- a/clang/test/CodeGenObjCXX/arc-rv-attr.mm
+++ b/clang/test/CodeGenObjCXX/arc-rv-attr.mm
@@ -1,4 +1,6 @@
// RUN: %clang_cc1 -triple arm64-apple-ios9 -fobjc-runtime=ios-9.0 -fobjc-arc -std=c++11 -O -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK
+// RUN: %clang_cc1 -triple arm64e-apple-ios15 -fobjc-runtime=ios-9.0 -fobjc-arc -std=c++11 -O -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK
+// RUN: %clang_cc1 -triple arm64_32-apple-watchos7 -fobjc-runtime=watchos-7.0 -fobjc-arc -std=c++11 -O -disable-llvm-passes -emit-llvm -o - %s | FileCheck %s -check-prefix=CHECK
id foo(void);
More information about the cfe-commits
mailing list