aboutsummaryrefslogtreecommitdiff
path: root/flang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorAnatoly Trosinenko <atrosinenko@accesssoftek.com>2025-07-09 18:40:45 +0300
committerGitHub <noreply@github.com>2025-07-09 18:40:45 +0300
commit613a2a1359370bc5ab3fbf71b4e89ae4211467c7 (patch)
treef45516a4b4772ae972baf3b33e75b9c4fc91ff09 /flang/lib/Frontend/CompilerInvocation.cpp
parente7c9f29fc5c44a79de9a64b12a7318c503ebb87d (diff)
downloadllvm-613a2a1359370bc5ab3fbf71b4e89ae4211467c7.zip
llvm-613a2a1359370bc5ab3fbf71b4e89ae4211467c7.tar.gz
llvm-613a2a1359370bc5ab3fbf71b4e89ae4211467c7.tar.bz2
[AArch64][PAC] Protect the entire function if pac-ret+leaf is requested (#140895)
Normally, pac-ret hardening is emitted as part of function prologues and epilogues, thus it is affected by the shrink-wrapping optimization. As protecting LR when it is spilled to the stack is already handled by regular -mbranch-protection=pac-ret option, it is reasonable to assume that pac-ret+leaf option means the user wants to apply pac-ret hardening to as much code as possible. For that reason, if pac-ret+leaf hardening mode is requested, this patch moves the emission of PAUTH_PROLOGUE (or PAUTH_EPILOGUE) pseudos from emitPrologue (emitEpilogue) methods of the AArch64FrameLowering class to processFunctionBeforeFrameIndicesReplaced. This change does not currently affect targets that emit WinCFI unwind information. This commit only affects where LR is signed and authenticated, but does not otherwise prevents the shrink-wrapping optimization. Moreover, without "+leaf" modifier PAUTH_(PROLOGUE|EPILOGUE) pseudos respect the shrink-wrapping optimization just as any other prologue/epilogue code.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions