[llvm-branch-commits] [compiler-rt] release/19.x: Normalize ptrauth handling in sanitizer runtime (#100483) (PR #100634)

2024-07-25 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.

LGTM

https://github.com/llvm/llvm-project/pull/100634
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] release/19.x: [Arm][AArch64][Clang] Respect function's branch protection attributes. (#101978) (PR #102646)

2024-08-09 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.

@RSilicon Thanks for the cherry-pick, LGTM. Did it locally too and check-clang 
passes.

https://github.com/llvm/llvm-project/pull/102646
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [openmp] [OpenMP][AArch64] Fix branch protection in microtasks (#102317) (PR #103491)

2024-08-19 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.

Some Distros(e.g. Fedora) are build by default branch-protection=standard.
Without this patch every application and library that links libopenmp.a will 
not be protected with BTI ( CFI protection for JOP attacks)
Also libopenmp.so won't be protected as not all file is BTI compatible.
So in security view this is an issue.
Not a regression as this was the case in previous releases.
Not a bug, as code will work just won't be CFI protected.
There are systems out there with BTI as of today with such a distro.


@tuliom do you have usecase for this?
@tru Change is simple and straightforward. I support the backport but leave it 
up to you.

HTH

https://github.com/llvm/llvm-project/pull/103491
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] [PAC][lld] Do not emit warnings for `-z pac-plt` with valid PAuth core info (PR #112959)

2024-10-18 Thread Daniel Kiss via llvm-branch-commits


@@ -33,13 +33,53 @@
 # RUN: llvm-mc -filetype=obj -triple=aarch64-linux-gnu no-info.s -o noinfo1.o
 # RUN: cp noinfo1.o noinfo2.o
 # RUN: not ld.lld -z pauth-report=error noinfo1.o tag1.o noinfo2.o -o 
/dev/null 2>&1 | FileCheck --check-prefix ERR5 %s
-# RUN: ld.lld -z pauth-report=warning noinfo1.o tag1.o noinfo2.o -o /dev/null 
2>&1 | FileCheck --check-prefix WARN %s
+# RUN: ld.lld -z pauth-report=warning noinfo1.o tag1.o noinfo2.o -o /dev/null 
2>&1 | FileCheck --check-prefix WARN1 %s
 # RUN: ld.lld -z pauth-report=none noinfo1.o tag1.o noinfo2.o --fatal-warnings 
-o /dev/null
 
 # ERR5:  error: noinfo1.o: -z pauth-report: file does not have AArch64 
PAuth core info while 'tag1.o' has one
 # ERR5-NEXT: error: noinfo2.o: -z pauth-report: file does not have AArch64 
PAuth core info while 'tag1.o' has one
-# WARN:  warning: noinfo1.o: -z pauth-report: file does not have AArch64 
PAuth core info while 'tag1.o' has one
-# WARN-NEXT: warning: noinfo2.o: -z pauth-report: file does not have AArch64 
PAuth core info while 'tag1.o' has one
+# WARN1:  warning: noinfo1.o: -z pauth-report: file does not have AArch64 
PAuth core info while 'tag1.o' has one
+# WARN1-NEXT: warning: noinfo2.o: -z pauth-report: file does not have AArch64 
PAuth core info while 'tag1.o' has one
+
+# RUN: llvm-mc -filetype=obj -triple=aarch64-linux-gnu abi-tag-zero.s  
  -o tag-zero.o
+# RUN: llvm-mc -filetype=obj -triple=aarch64-linux-gnu 
%p/Inputs/aarch64-func2.s -o func2.o
+# RUN: llvm-mc -filetype=obj -triple=aarch64-linux-gnu 
%p/Inputs/aarch64-func3.s -o func3.o
+# RUN: ld.lld func3.o --shared -o func3.so
+# RUN: ld.lld tag1.o func2.o func3.so -z pac-plt --shared -o pacplt-nowarn 
--fatal-warnings
+# RUN: ld.lld tag-zero.o func2.o func3.so -z pac-plt --shared -o pacplt-warn 
2>&1 | FileCheck --check-prefix WARN2 %s
+
+# WARN2:  warning: tag-zero.o: -z pac-plt: file does not have 
GNU_PROPERTY_AARCH64_FEATURE_1_PAC property and no valid PAuth core info 
present for this link job
+# WARN2-NEXT: warning: func2.o: -z pac-plt: file does not have 
GNU_PROPERTY_AARCH64_FEATURE_1_PAC property and no valid PAuth core info 
present for this link job

DanielKristofKiss wrote:

why this warning is not present for linking `pacplt-nowarn` with 
--fatal-warnings as func2.o is the same for both link command?


https://github.com/llvm/llvm-project/pull/112959
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] [PAC][lld] Do not emit warnings for `-z pac-plt` with valid PAuth core info (PR #112959)

2024-11-04 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.

lgtm

https://github.com/llvm/llvm-project/pull/112959
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] [PAC][lld] Use braa instr in PAC PLT sequence with valid PAuth core info (PR #113945)

2024-11-04 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.

LGTM

https://github.com/llvm/llvm-project/pull/113945
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [lld] [PAC][lld] Use braa instr in PAC PLT sequence with valid PAuth core info (PR #113945)

2024-11-04 Thread Daniel Kiss via llvm-branch-commits


@@ -1066,9 +1079,13 @@ void AArch64BtiPac::writePlt(uint8_t *buf, const Symbol 
&sym,
   0x11, 0x02, 0x40, 0xf9,  // ldr  x17, [x16, Offset(&(.got.plt[n]))]
   0x10, 0x02, 0x00, 0x91   // add  x16, x16, Offset(&(.got.plt[n]))
   };
+  const uint8_t pacHintBr[] = {
+  0x9f, 0x21, 0x03, 0xd5, // autia1716
+  0x20, 0x02, 0x1f, 0xd6  // br   x17
+  };
   const uint8_t pacBr[] = {
-  0x9f, 0x21, 0x03, 0xd5,  // autia1716
-  0x20, 0x02, 0x1f, 0xd6   // br   x17
+  0x30, 0x0a, 0x1f, 0xd7, // braa x17, x16
+  0x1f, 0x20, 0x03, 0xd5  // nop

DanielKristofKiss wrote:

maybe UDF instruction is a safer choice instead of NOP. also may not have any 
significance. 

https://github.com/llvm/llvm-project/pull/113945
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] Revert "[AArch64] Correct position of CFI Instruction for Pointer Authentication (#121559) (PR #137800)

2025-05-06 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss updated 
https://github.com/llvm/llvm-project/pull/137800



  



Rate limit · GitHub


  body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe 
UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
font-size: 14px;
line-height: 1.5;
margin: 0;
  }

  .container { margin: 50px auto; max-width: 600px; text-align: center; 
padding: 0 24px; }

  a { color: #0366d6; text-decoration: none; }
  a:hover { text-decoration: underline; }

  h1 { line-height: 60px; font-size: 48px; font-weight: 300; margin: 0px; 
text-shadow: 0 1px 0 #fff; }
  p { color: rgba(0, 0, 0, 0.5); margin: 20px 0 40px; }

  ul { list-style: none; margin: 25px 0; padding: 0; }
  li { display: table-cell; font-weight: bold; width: 1%; }

  .logo { display: inline-block; margin-top: 35px; }
  .logo-img-2x { display: none; }
  @media
  only screen and (-webkit-min-device-pixel-ratio: 2),
  only screen and (   min--moz-device-pixel-ratio: 2),
  only screen and ( -o-min-device-pixel-ratio: 2/1),
  only screen and (min-device-pixel-ratio: 2),
  only screen and (min-resolution: 192dpi),
  only screen and (min-resolution: 2dppx) {
.logo-img-1x { display: none; }
.logo-img-2x { display: inline-block; }
  }

  #suggestions {
margin-top: 35px;
color: #ccc;
  }
  #suggestions a {
color: #66;
font-weight: 200;
font-size: 14px;
margin: 0 10px;
  }


  
  



  Whoa there!
  You have exceeded a secondary rate limit.
Please wait a few minutes before you try again;
in some cases this may take up to an hour.
  
  
https://support.github.com/contact";>Contact Support —
https://githubstatus.com";>GitHub Status —
https://twitter.com/githubstatus";>@githubstatus
  

  

  

  

  

  


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AArch64] Correct position of CFI Instruction for Pointer Authentication (PR #137800)

2025-05-06 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss edited 
https://github.com/llvm/llvm-project/pull/137800
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AArch64] Correct position of CFI Instruction for Pointer Authentication (PR #137800)

2025-05-06 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss updated 
https://github.com/llvm/llvm-project/pull/137800



  



Rate limit · GitHub


  body {
background-color: #f6f8fa;
color: #24292e;
font-family: -apple-system,BlinkMacSystemFont,Segoe 
UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;
font-size: 14px;
line-height: 1.5;
margin: 0;
  }

  .container { margin: 50px auto; max-width: 600px; text-align: center; 
padding: 0 24px; }

  a { color: #0366d6; text-decoration: none; }
  a:hover { text-decoration: underline; }

  h1 { line-height: 60px; font-size: 48px; font-weight: 300; margin: 0px; 
text-shadow: 0 1px 0 #fff; }
  p { color: rgba(0, 0, 0, 0.5); margin: 20px 0 40px; }

  ul { list-style: none; margin: 25px 0; padding: 0; }
  li { display: table-cell; font-weight: bold; width: 1%; }

  .logo { display: inline-block; margin-top: 35px; }
  .logo-img-2x { display: none; }
  @media
  only screen and (-webkit-min-device-pixel-ratio: 2),
  only screen and (   min--moz-device-pixel-ratio: 2),
  only screen and ( -o-min-device-pixel-ratio: 2/1),
  only screen and (min-device-pixel-ratio: 2),
  only screen and (min-resolution: 192dpi),
  only screen and (min-resolution: 2dppx) {
.logo-img-1x { display: none; }
.logo-img-2x { display: inline-block; }
  }

  #suggestions {
margin-top: 35px;
color: #ccc;
  }
  #suggestions a {
color: #66;
font-weight: 200;
font-size: 14px;
margin: 0 10px;
  }


  
  



  Whoa there!
  You have exceeded a secondary rate limit.
Please wait a few minutes before you try again;
in some cases this may take up to an hour.
  
  
https://support.github.com/contact";>Contact Support —
https://githubstatus.com";>GitHub Status —
https://twitter.com/githubstatus";>@githubstatus
  

  

  

  

  

  


___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AArch64] Correct position of CFI Instruction for Pointer Authentication (PR #137800)

2025-05-06 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss edited 
https://github.com/llvm/llvm-project/pull/137800
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AArch64] Correct position of CFI Instruction for Pointer Authentication (PR #137800)

2025-05-06 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss milestoned 
https://github.com/llvm/llvm-project/pull/137800
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] Revert "[AArch64] Correct position of CFI Instruction for Pointer Authentication (#121559) (PR #137800)

2025-04-29 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss updated 
https://github.com/llvm/llvm-project/pull/137800

>From 517e0a8088a0ae8ffa984d721ec043235b2aa98c Mon Sep 17 00:00:00 2001
From: Daniel Kiss 
Date: Tue, 29 Apr 2025 14:35:15 +0200
Subject: [PATCH] Revert "[AArch64] Correct position of CFI Instruction for
 Pointer Authentication (#121559)"

This reverts commit 0b73b5af60f2c544892b9dd68b4fa43eeff52fc1.
---
 .../lib/Target/AArch64/AArch64PointerAuth.cpp | 12 ++--
 .../machine-outliner-retaddr-sign-cfi.ll  |  2 +-
 ...tliner-retaddr-sign-diff-scope-same-key.ll | 12 ++--
 .../machine-outliner-retaddr-sign-non-leaf.ll | 12 ++--
 .../machine-outliner-retaddr-sign-regsave.mir |  2 +-
 ...tliner-retaddr-sign-same-scope-diff-key.ll | 12 ++--
 .../machine-outliner-retaddr-sign-sp-mod.mir  | 34 -
 ...machine-outliner-retaddr-sign-subtarget.ll |  6 +-
 .../machine-outliner-retaddr-sign-thunk.ll| 18 +++--
 .../AArch64/pacbti-llvm-generated-funcs-2.ll  |  4 +-
 ...sign-return-address-cfi-negate-ra-state.ll | 24 +++
 .../AArch64/sign-return-address-pauth-lr.ll   | 70 +--
 .../CodeGen/AArch64/sign-return-address.ll| 44 ++--
 .../MIR/AArch64/return-address-signing.mir|  6 +-
 14 files changed, 128 insertions(+), 130 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64PointerAuth.cpp 
b/llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
index c3bc70ad6f427..a290a5112d012 100644
--- a/llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
+++ b/llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
@@ -144,20 +144,20 @@ void AArch64PointerAuth::signLR(MachineFunction &MF,
   // No SEH opcode for this one; it doesn't materialize into an
   // instruction on Windows.
   if (MFnI.branchProtectionPAuthLR() && Subtarget->hasPAuthLR()) {
-emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup, EmitCFI);
 BuildMI(MBB, MBBI, DL,
 TII->get(MFnI.shouldSignWithBKey() ? AArch64::PACIBSPPC
: AArch64::PACIASPPC))
 .setMIFlag(MachineInstr::FrameSetup)
 ->setPreInstrSymbol(MF, MFnI.getSigningInstrLabel());
+emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup, EmitCFI);
   } else {
 BuildPACM(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup);
-emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup, EmitCFI);
 BuildMI(MBB, MBBI, DL,
 TII->get(MFnI.shouldSignWithBKey() ? AArch64::PACIBSP
: AArch64::PACIASP))
 .setMIFlag(MachineInstr::FrameSetup)
 ->setPreInstrSymbol(MF, MFnI.getSigningInstrLabel());
+emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup, EmitCFI);
   }
 
   if (!EmitCFI && NeedsWinCFI) {
@@ -212,19 +212,19 @@ void AArch64PointerAuth::authenticateLR(
 if (MFnI->branchProtectionPAuthLR() && Subtarget->hasPAuthLR()) {
   assert(PACSym && "No PAC instruction to refer to");
   emitPACSymOffsetIntoX16(*TII, MBB, MBBI, DL, PACSym);
-  emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy,
- EmitAsyncCFI);
   BuildMI(MBB, MBBI, DL,
   TII->get(UseBKey ? AArch64::AUTIBSPPCi : AArch64::AUTIASPPCi))
   .addSym(PACSym)
   .setMIFlag(MachineInstr::FrameDestroy);
-} else {
-  BuildPACM(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy, PACSym);
   emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy,
  EmitAsyncCFI);
+} else {
+  BuildPACM(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy, PACSym);
   BuildMI(MBB, MBBI, DL,
   TII->get(UseBKey ? AArch64::AUTIBSP : AArch64::AUTIASP))
   .setMIFlag(MachineInstr::FrameDestroy);
+  emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy,
+ EmitAsyncCFI);
 }
 
 if (NeedsWinCFI) {
diff --git a/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll 
b/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
index e7de54036245a..4bbbe40176313 100644
--- a/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
+++ b/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
@@ -9,9 +9,9 @@ define void @a() "sign-return-address"="all" 
"sign-return-address-key"="b_key" {
 ; CHECK-LABEL: a: // @a
 ; CHECK:   // %bb.0:
 ; CHECK-NEXT:  .cfi_b_key_frame
-; CHECK-NEXT:  .cfi_negate_ra_state
 ; V8A-NEXT:hint #27
 ; V83A-NEXT:   pacibsp
+; CHECK-NEXT:  .cfi_negate_ra_state
   %1 = alloca i32, align 4
   %2 = alloca i32, align 4
   %3 = alloca i32, align 4
diff --git 
a/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-diff-scope-same-key.ll
 
b/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-diff-scope-same-key.ll
index a26dda1d5c1f1..6a11bef08c740 100644
--- 
a/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-diff-scope-same-key.ll
+++ 
b/llvm

[llvm-branch-commits] [llvm] Revert "[AArch64] Correct position of CFI Instruction for Pointer Authentication (#121559) (PR #137800)

2025-04-29 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss created 
https://github.com/llvm/llvm-project/pull/137800

This reverts commit 0b73b5af60f2c544892b9dd68b4fa43eeff52fc1.

Corresponding change on main: #137795
CFI directives like `.cfi_negate_ra_state` must be emitted after the 
instruction.
If the execution is stopped before the `paciasp` instruction is executed the 
debugger/unwinder would try to authenticated the return address as the 
`.cfi_negate_ra_state` already indicates it got signed.
The problem of .cfi_negate_ra_state_with_pc to be solved later.

>From 517e0a8088a0ae8ffa984d721ec043235b2aa98c Mon Sep 17 00:00:00 2001
From: Daniel Kiss 
Date: Tue, 29 Apr 2025 14:35:15 +0200
Subject: [PATCH] Revert "[AArch64] Correct position of CFI Instruction for
 Pointer Authentication (#121559)"

This reverts commit 0b73b5af60f2c544892b9dd68b4fa43eeff52fc1.
---
 .../lib/Target/AArch64/AArch64PointerAuth.cpp | 12 ++--
 .../machine-outliner-retaddr-sign-cfi.ll  |  2 +-
 ...tliner-retaddr-sign-diff-scope-same-key.ll | 12 ++--
 .../machine-outliner-retaddr-sign-non-leaf.ll | 12 ++--
 .../machine-outliner-retaddr-sign-regsave.mir |  2 +-
 ...tliner-retaddr-sign-same-scope-diff-key.ll | 12 ++--
 .../machine-outliner-retaddr-sign-sp-mod.mir  | 34 -
 ...machine-outliner-retaddr-sign-subtarget.ll |  6 +-
 .../machine-outliner-retaddr-sign-thunk.ll| 18 +++--
 .../AArch64/pacbti-llvm-generated-funcs-2.ll  |  4 +-
 ...sign-return-address-cfi-negate-ra-state.ll | 24 +++
 .../AArch64/sign-return-address-pauth-lr.ll   | 70 +--
 .../CodeGen/AArch64/sign-return-address.ll| 44 ++--
 .../MIR/AArch64/return-address-signing.mir|  6 +-
 14 files changed, 128 insertions(+), 130 deletions(-)

diff --git a/llvm/lib/Target/AArch64/AArch64PointerAuth.cpp 
b/llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
index c3bc70ad6f427..a290a5112d012 100644
--- a/llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
+++ b/llvm/lib/Target/AArch64/AArch64PointerAuth.cpp
@@ -144,20 +144,20 @@ void AArch64PointerAuth::signLR(MachineFunction &MF,
   // No SEH opcode for this one; it doesn't materialize into an
   // instruction on Windows.
   if (MFnI.branchProtectionPAuthLR() && Subtarget->hasPAuthLR()) {
-emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup, EmitCFI);
 BuildMI(MBB, MBBI, DL,
 TII->get(MFnI.shouldSignWithBKey() ? AArch64::PACIBSPPC
: AArch64::PACIASPPC))
 .setMIFlag(MachineInstr::FrameSetup)
 ->setPreInstrSymbol(MF, MFnI.getSigningInstrLabel());
+emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup, EmitCFI);
   } else {
 BuildPACM(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup);
-emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup, EmitCFI);
 BuildMI(MBB, MBBI, DL,
 TII->get(MFnI.shouldSignWithBKey() ? AArch64::PACIBSP
: AArch64::PACIASP))
 .setMIFlag(MachineInstr::FrameSetup)
 ->setPreInstrSymbol(MF, MFnI.getSigningInstrLabel());
+emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameSetup, EmitCFI);
   }
 
   if (!EmitCFI && NeedsWinCFI) {
@@ -212,19 +212,19 @@ void AArch64PointerAuth::authenticateLR(
 if (MFnI->branchProtectionPAuthLR() && Subtarget->hasPAuthLR()) {
   assert(PACSym && "No PAC instruction to refer to");
   emitPACSymOffsetIntoX16(*TII, MBB, MBBI, DL, PACSym);
-  emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy,
- EmitAsyncCFI);
   BuildMI(MBB, MBBI, DL,
   TII->get(UseBKey ? AArch64::AUTIBSPPCi : AArch64::AUTIASPPCi))
   .addSym(PACSym)
   .setMIFlag(MachineInstr::FrameDestroy);
-} else {
-  BuildPACM(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy, PACSym);
   emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy,
  EmitAsyncCFI);
+} else {
+  BuildPACM(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy, PACSym);
   BuildMI(MBB, MBBI, DL,
   TII->get(UseBKey ? AArch64::AUTIBSP : AArch64::AUTIASP))
   .setMIFlag(MachineInstr::FrameDestroy);
+  emitPACCFI(*Subtarget, MBB, MBBI, DL, MachineInstr::FrameDestroy,
+ EmitAsyncCFI);
 }
 
 if (NeedsWinCFI) {
diff --git a/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll 
b/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
index e7de54036245a..4bbbe40176313 100644
--- a/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
+++ b/llvm/test/CodeGen/AArch64/machine-outliner-retaddr-sign-cfi.ll
@@ -9,9 +9,9 @@ define void @a() "sign-return-address"="all" 
"sign-return-address-key"="b_key" {
 ; CHECK-LABEL: a: // @a
 ; CHECK:   // %bb.0:
 ; CHECK-NEXT:  .cfi_b_key_frame
-; CHECK-NEXT:  .cfi_negate_ra_state
 ; V8A-NEXT:hint #27
 ; V83A-NEXT:

[llvm-branch-commits] [llvm] release/20.x: [ARM] Speedups for CombineBaseUpdate. (#129725) (PR #130035)

2025-03-31 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.

LGMT

https://github.com/llvm/llvm-project/pull/130035
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] [AArch64] Correct position of CFI Instruction for Pointer Authentication (PR #137800)

2025-05-15 Thread Daniel Kiss via llvm-branch-commits

DanielKristofKiss wrote:

ping for review.
Counterpart landed in main already.

https://github.com/llvm/llvm-project/pull/137800
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] RuntimeLibcalls: Use array initializers for default values (PR #143082)

2025-06-06 Thread Daniel Kiss via llvm-branch-commits


@@ -90,18 +90,20 @@ struct RuntimeLibcallsInfo {
 
 private:
   /// Stores the name each libcall.
-  const char *LibcallRoutineNames[RTLIB::UNKNOWN_LIBCALL + 1];
+  const char *LibcallRoutineNames[RTLIB::UNKNOWN_LIBCALL + 1] = {nullptr};
 
   /// Stores the CallingConv that should be used for each libcall.
-  CallingConv::ID LibcallCallingConvs[RTLIB::UNKNOWN_LIBCALL];
+  CallingConv::ID LibcallCallingConvs[RTLIB::UNKNOWN_LIBCALL] = {
+  CallingConv::C};
 
   /// The condition type that should be used to test the result of each of the
   /// soft floating-point comparison libcall against integer zero.
   ///
   // FIXME: This is only relevant for the handful of floating-point comparison
   // runtime calls; it's excessive to have a table entry for every single
   // opcode.
-  CmpInst::Predicate SoftFloatCompareLibcallPredicates[RTLIB::UNKNOWN_LIBCALL];
+  CmpInst::Predicate SoftFloatCompareLibcallPredicates[RTLIB::UNKNOWN_LIBCALL] 
=
+  {CmpInst::BAD_ICMP_PREDICATE};

DanielKristofKiss wrote:

CmpInst::BAD_ICMP_PREDICATE is not zero (42) so only the first element of the 
array will be initialized to `CmpInst::BAD_ICMP_PREDICATE` rest will be zero. 


https://github.com/llvm/llvm-project/pull/143082
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] RuntimeLibcalls: Use array initializers for default values (PR #143082)

2025-06-11 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.


https://github.com/llvm/llvm-project/pull/143082
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] ARM: Remove subtarget field tracking SjLj (PR #147226)

2025-07-07 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.

LGTM

https://github.com/llvm/llvm-project/pull/147226
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] ARM: Remove subtarget field tracking SjLj (PR #147226)

2025-07-07 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.

lgtm

https://github.com/llvm/llvm-project/pull/147226
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [llvm] Triple: Record default exception handling type (PR #147225)

2025-07-07 Thread Daniel Kiss via llvm-branch-commits

https://github.com/DanielKristofKiss approved this pull request.


https://github.com/llvm/llvm-project/pull/147225
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits