Skip to content

Revert "[llvm][ARM][AArch64] Add attributes to synthetic functions." #98283

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 10, 2024

Conversation

DanielKristofKiss
Copy link
Member

Reverts #83153

@DanielKristofKiss DanielKristofKiss merged commit ac28559 into main Jul 10, 2024
4 of 5 checks passed
@DanielKristofKiss DanielKristofKiss deleted the revert-83153-synthetic branch July 10, 2024 08:22
@llvmbot
Copy link
Member

llvmbot commented Jul 10, 2024

@llvm/pr-subscribers-llvm-ir

Author: Daniel Kiss (DanielKristofKiss)

Changes

Reverts llvm/llvm-project#83153


Full diff: https://github.com/llvm/llvm-project/pull/98283.diff

3 Files Affected:

  • (modified) llvm/lib/IR/Function.cpp (-29)
  • (removed) llvm/test/Instrumentation/AddressSanitizer/module-flags-aarch64.ll (-33)
  • (removed) llvm/test/Instrumentation/MemorySanitizer/AArch64/module-flags-aarch64.ll (-33)
diff --git a/llvm/lib/IR/Function.cpp b/llvm/lib/IR/Function.cpp
index 20871982afb06..5fb348a8bbcd4 100644
--- a/llvm/lib/IR/Function.cpp
+++ b/llvm/lib/IR/Function.cpp
@@ -407,35 +407,6 @@ Function *Function::createWithDefaultAttr(FunctionType *Ty,
   StringRef DefaultFeatures = F->getContext().getDefaultTargetFeatures();
   if (!DefaultFeatures.empty())
     B.addAttribute("target-features", DefaultFeatures);
-
-  // Check if the module attribute is present and not zero.
-  auto isModuleAttributeSet = [&](const StringRef &ModAttr) -> bool {
-    const auto *Attr =
-        mdconst::extract_or_null<ConstantInt>(M->getModuleFlag(ModAttr));
-    return Attr && !Attr->isZero();
-  };
-
-  auto AddAttributeIfSet = [&](const StringRef &ModAttr) {
-    if (isModuleAttributeSet(ModAttr))
-      B.addAttribute(ModAttr);
-  };
-
-  StringRef SignType = "none";
-  if (isModuleAttributeSet("sign-return-address"))
-    SignType = "non-leaf";
-  if (isModuleAttributeSet("sign-return-address-all"))
-    SignType = "all";
-  if (SignType != "none") {
-    B.addAttribute("sign-return-address", SignType);
-    B.addAttribute("sign-return-address-key",
-                   isModuleAttributeSet("sign-return-address-with-bkey")
-                       ? "b_key"
-                       : "a_key");
-  }
-  AddAttributeIfSet("branch-target-enforcement");
-  AddAttributeIfSet("branch-protection-pauth-lr");
-  AddAttributeIfSet("guarded-control-stack");
-
   F->addFnAttrs(B);
   return F;
 }
diff --git a/llvm/test/Instrumentation/AddressSanitizer/module-flags-aarch64.ll b/llvm/test/Instrumentation/AddressSanitizer/module-flags-aarch64.ll
deleted file mode 100644
index 91eaa360d18df..0000000000000
--- a/llvm/test/Instrumentation/AddressSanitizer/module-flags-aarch64.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-;; Verify that the synthetic functions inherit their flags from the corresponding
-;; BTE and return address signing module flags.
-; RUN: opt < %s -passes=asan -S | FileCheck %s
-; REQUIRES: aarch64-registered-target
-
-target triple = "aarch64-unknown-linux-gnu"
-
-@g = dso_local global i32 0, align 4
-
-define i32 @test_load() sanitize_address {
-entry:
-  %tmp = load i32, ptr @g, align 4
-  ret i32 %tmp
-}
-
-!llvm.module.flags = !{!0, !1}
-
-;; Due to -fasynchronous-unwind-tables.
-!0 = !{i32 7, !"uwtable", i32 2}
-
-;; Due to -fno-omit-frame-pointer.
-!1 = !{i32 7, !"frame-pointer", i32 2}
-
-!llvm.module.flags = !{!2, !3, !4}
-
-!2 = !{i32 8, !"branch-target-enforcement", i32 1}
-!3 = !{i32 8, !"sign-return-address", i32 1}
-!4 = !{i32 8, !"sign-return-address-all", i32 0}
-
-;; Set the uwtable attribute on ctor/dtor.
-; CHECK: define internal void @asan.module_ctor() #[[#ATTR:]]
-; CHECK: define internal void @asan.module_dtor() #[[#ATTR]]
-; CHECK: attributes #[[#ATTR]] = { nounwind uwtable "branch-target-enforcement" "frame-pointer"="all" "sign-return-address"="non-leaf" "sign-return-address-key"="a_key" }
diff --git a/llvm/test/Instrumentation/MemorySanitizer/AArch64/module-flags-aarch64.ll b/llvm/test/Instrumentation/MemorySanitizer/AArch64/module-flags-aarch64.ll
deleted file mode 100644
index f6a1009c932a0..0000000000000
--- a/llvm/test/Instrumentation/MemorySanitizer/AArch64/module-flags-aarch64.ll
+++ /dev/null
@@ -1,33 +0,0 @@
-;; Verify that the synthetic functions inherit their flags from the corresponding
-;; BTE and return address signing module flags.
-; RUN: opt < %s -passes=asan -S | FileCheck %s
-; REQUIRES: aarch64-registered-target
-
-target triple = "aarch64-unknown-linux-gnu"
-
-@g = dso_local global i32 0, align 4
-
-define i32 @test_load() sanitize_memory {
-entry:
-  %tmp = load i32, ptr @g, align 4
-  ret i32 %tmp
-}
-
-!llvm.module.flags = !{!0, !1}
-
-;; Due to -fasynchronous-unwind-tables.
-!0 = !{i32 7, !"uwtable", i32 2}
-
-;; Due to -fno-omit-frame-pointer.
-!1 = !{i32 7, !"frame-pointer", i32 2}
-
-!llvm.module.flags = !{!2, !3, !4}
-
-!2 = !{i32 8, !"branch-target-enforcement", i32 1}
-!3 = !{i32 8, !"sign-return-address", i32 1}
-!4 = !{i32 8, !"sign-return-address-all", i32 0}
-
-;; Set the uwtable attribute on ctor/dtor.
-; CHECK: define internal void @asan.module_ctor() #[[#ATTR:]]
-; CHECK: define internal void @asan.module_dtor() #[[#ATTR]]
-; CHECK: attributes #[[#ATTR]] = { nounwind uwtable "branch-target-enforcement" "frame-pointer"="all" "sign-return-address"="non-leaf" "sign-return-address-key"="a_key" }

aaryanshukla pushed a commit to aaryanshukla/llvm-project that referenced this pull request Jul 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants