diff options
author | Fangrui Song <i@maskray.me> | 2024-06-22 00:34:16 -0700 |
---|---|---|
committer | Fangrui Song <i@maskray.me> | 2024-06-22 00:34:16 -0700 |
commit | 75006466296ed4b0f845cbbec4bf77c21de43b40 (patch) | |
tree | 6ca8baeb10f0b556245b6ad66a989c938e480c8c /flang | |
parent | a091bfe71fdde4358dbfc73926f875cb05121c00 (diff) | |
download | llvm-75006466296ed4b0f845cbbec4bf77c21de43b40.zip llvm-75006466296ed4b0f845cbbec4bf77c21de43b40.tar.gz llvm-75006466296ed4b0f845cbbec4bf77c21de43b40.tar.bz2 |
[MC] Remove pending labels
This commit removes the complexity introduced by pending labels in
https://reviews.llvm.org/D5915 by using a simpler approach. D5915 aimed
to ensure padding placement before `.Ltmp0` for the following code, but
at the cost of expensive per-instruction `flushPendingLabels`.
```
// similar to llvm/test/MC/X86/AlignedBundling/labeloffset.s
.bundle_lock align_to_end
calll .L0$pb
.bundle_unlock
.L0$pb:
popl %eax
.Ltmp0: //// padding should be inserted before this label instead of after
addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp0-.L0$pb), %eax
```
(D5915 was adjusted by https://reviews.llvm.org/D8072 and
https://reviews.llvm.org/D71368)
This patch achieves the same goal by setting the offset of the empty
MCDataFragment (`Prev`) in `layoutBundle`. This eliminates the need for
pending labels and simplifies the code.
llvm/test/MC/MachO/pending-labels.s (D71368): relocation symbols are
changed, but the result is still supported by linkers.
Diffstat (limited to 'flang')
0 files changed, 0 insertions, 0 deletions