diff options
author | Peter Smith <peter.smith@arm.com> | 2024-11-15 18:18:18 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-11-15 18:18:18 +0000 |
commit | 098b0d18add97dea94e16006486b2fded65e228d (patch) | |
tree | b892125899cc52a2d420435003896fd6680e933f /clang/lib/CodeGen/CodeGenFunction.cpp | |
parent | ef92aba52a58cda8d670de8ce936455949746468 (diff) | |
download | llvm-098b0d18add97dea94e16006486b2fded65e228d.zip llvm-098b0d18add97dea94e16006486b2fded65e228d.tar.gz llvm-098b0d18add97dea94e16006486b2fded65e228d.tar.bz2 |
[LLD][AArch64] Detach Landing Pad creation from Thunk creation (#116402)
Move Landing Pad Creation to a new function that checks each thunk every
pass to see if it needs a landing pad. This permits a thunk to be
created without needing a landing pad, but later needing one due to
drifting out of direct branch range and requiring an indirect branch.
We record all the Thunks created so far in a new vector rather than
trying to iterate over the DenseMap as we need a deterministic order of
adding LandingPadThunks due to the short branch fall through. We cannot
use normalizeExistingThunk() either as that only iterates through live
thunks.
Fixes: https://crbug.com/377438309
Original PR: https://github.com/llvm/llvm-project/pull/108989
Sending without a new test case to fix existing test. A new regression
test will come in a separate PR as coming up with a small enough
reproducer for this case is non-trivial.
Diffstat (limited to 'clang/lib/CodeGen/CodeGenFunction.cpp')
0 files changed, 0 insertions, 0 deletions