aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
diff options
context:
space:
mode:
authorLang Hames <lhames@gmail.com>2025-01-28 14:46:27 +1100
committerLang Hames <lhames@gmail.com>2025-01-28 14:57:49 +1100
commit79685b59b78804f99e46f12ac888edbc0a6d1472 (patch)
treed5beec232797b08b2e9518869116a637f1122a81 /llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
parent8b29c5ccddb87ac7336a700877dc08cdc57ac65b (diff)
downloadllvm-79685b59b78804f99e46f12ac888edbc0a6d1472.zip
llvm-79685b59b78804f99e46f12ac888edbc0a6d1472.tar.gz
llvm-79685b59b78804f99e46f12ac888edbc0a6d1472.tar.bz2
[JITLink][aarch64] Fix dependence tracking for Pointer64Authenticated edges.
Transform Pointer64Authenticated edges into KeepAlive edges, rather than removing them, in order to preserve symbol dependence information. The lowerPointer64AuthEdgesToSigningFunction pass is responsible for transforming Pointer64Authenticated edges to a signing function that can be run in the executing process to initialize global PAC pointers. Removing the edges entirely in this pass results in loss of dependence tracking, which can in turn cause ORC to report PAC pointers as ready before the pointers targets have completed materialization (resulting in a use-before-finalize error, often manifesting as access to uninitialized / unprotected memory). This commit addresses the issue by leaving the edges in the graph and simply changing their kind to KeepAlive, a no-op for fixup purposes but followed for dependence tracking purposes.
Diffstat (limited to 'llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions