diff options
author | ZhaoQi <zhaoqi01@loongson.cn> | 2025-01-17 17:29:22 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-01-17 17:29:22 +0800 |
commit | 89e3a649f207021c0884ed5f8e56321c51854ac3 (patch) | |
tree | 317361d5a190ad4679aec551f8fac213a5ab2435 /flang/lib/Frontend/CompilerInvocation.cpp | |
parent | 73478708839fad8b02b3cfc84959d64a15ba93ca (diff) | |
download | llvm-89e3a649f207021c0884ed5f8e56321c51854ac3.zip llvm-89e3a649f207021c0884ed5f8e56321c51854ac3.tar.gz llvm-89e3a649f207021c0884ed5f8e56321c51854ac3.tar.bz2 |
[LoongArch] Emit R_LARCH_RELAX when expanding some macros (#120067)
Emit `R_LARCH_RELAX` relocations when expanding some macros, including:
- `la.tls.ie`, `la.tls.ld`, `la.tls.gd`, `la.tls.desc`,
- `call36`, `tail36`.
Other macros that need to emit `R_LARCH_RELAX` relocations was
implemented in https://github.com/llvm/llvm-project/pull/72961, including:
- `la.local`, `la.pcrel`, `la.pcrel` expanded as `la.abs`, `la`,
`la.global`, `la/la.global` expanded as `la.pcrel`, `la.got`.
Note: `la.tls.le` macro can be relaxed when expanded with
`R_LARCH_TLS_LE_{HI20/ADD/LO12}_R` relocations. But if we do so,
previously handwritten assembly code will occur error due to the
redundant `add.{w/d}` followed by `la.tls.le`. So `la.tls.le` keeps to
expands with `R_LARCH_TLS_LE_{HI20/LO12}`.
Diffstat (limited to 'flang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions