Skip to content

Conversation

@DanielKristofKiss
Copy link
Member

Reverts #83153

@DanielKristofKiss DanielKristofKiss merged commit ac28559 into main Jul 10, 2024
@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.

3 participants