diff options
author | Daniel Kiss <daniel.kiss@arm.com> | 2024-07-10 10:22:13 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-10 10:22:13 +0200 |
commit | ac285595829dde4cf435bcf5fc7a2a502d346fd4 (patch) | |
tree | 39763612fa36f4582709db86bc092f50be341069 /llvm | |
parent | da31b684a57cdc77ad4274fd7d8b47ee27dea6c6 (diff) | |
download | llvm-ac285595829dde4cf435bcf5fc7a2a502d346fd4.zip llvm-ac285595829dde4cf435bcf5fc7a2a502d346fd4.tar.gz llvm-ac285595829dde4cf435bcf5fc7a2a502d346fd4.tar.bz2 |
Revert "[llvm][ARM][AArch64] Add attributes to synthetic functions." (#98283)
Reverts llvm/llvm-project#83153
Diffstat (limited to 'llvm')
3 files changed, 0 insertions, 95 deletions
diff --git a/llvm/lib/IR/Function.cpp b/llvm/lib/IR/Function.cpp index 2087198..5fb348a8 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 91eaa36..0000000 --- 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 f6a1009..0000000 --- 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" } |