aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
diff options
context:
space:
mode:
authorJob Noorman <jnoorman@igalia.com>2023-06-26 09:09:36 +0200
committerJob Noorman <jnoorman@igalia.com>2023-06-26 09:41:20 +0200
commit794970988e9fd02fdb8ddc8479f4dcc7cdd93474 (patch)
treed874dfa400e195e81a3740f3cf3c3960921ededd /llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
parentde5198b00dd7d4df2d30dcae5f9bd4ebc85f5d17 (diff)
downloadllvm-794970988e9fd02fdb8ddc8479f4dcc7cdd93474.zip
llvm-794970988e9fd02fdb8ddc8479f4dcc7cdd93474.tar.gz
llvm-794970988e9fd02fdb8ddc8479f4dcc7cdd93474.tar.bz2
[JITLink][RISCV] Adjust offsets of non-relaxable edges
The relaxation algorithm used to only update offsets of relaxable edges. This caused non-relaxable edges that appear after a relaxed instruction to have an incorrect offset and be applied at the wrong location. This patch fixes this by updating the offsets of all edges. Note that this bug was caused by an incorrect translation of LLD's relaxation algorithm. LLD always uses all edges during relaxation while I decided to filter-out relaxable edges to prevent having to iterate non-relaxable edges at each step. However, this had the side-effect of only updating offsets of relaxable edges. This patch leaves the filtering of relaxable edges as-is but iterates all edges when updating offsets. Reviewed By: StephenFan Differential Revision: https://reviews.llvm.org/D153515
Diffstat (limited to 'llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp')
0 files changed, 0 insertions, 0 deletions