diff options
author | Xi Ruoyao <xry111@xry111.site> | 2025-03-01 11:46:46 +0800 |
---|---|---|
committer | Lulu Cheng <chenglulu@loongson.cn> | 2025-08-18 09:09:35 +0800 |
commit | 2ac0e38a3099b6422199553ae29b8b333bb9f5e7 (patch) | |
tree | 56b4b1abeab5ddd3938212d5677c6e01e7b102d6 /libjava | |
parent | 9b55cd0405609474aab6fdd0c621fd738af5800a (diff) | |
download | gcc-2ac0e38a3099b6422199553ae29b8b333bb9f5e7.zip gcc-2ac0e38a3099b6422199553ae29b8b333bb9f5e7.tar.gz gcc-2ac0e38a3099b6422199553ae29b8b333bb9f5e7.tar.bz2 |
LoongArch: Remove unneeded "b 3f" instruction after LL-SC loops
This instruction is used to skip an redundant barrier if -mno-ld-seq-sa
or the memory model requires a barrier on failure. But with -mld-seq-sa
and other memory models the barrier may be nonexisting at all, and we
should remove the "b 3f" instruction as well.
The implementation uses a new operand modifier "%T" to output a comment
marker if the operand is a memory order for which the barrier won't be
generated. "%T", and also "%t", are not really used before and the code
for them in loongarch_print_operand_reloc is just some MIPS legacy.
gcc/ChangeLog:
* config/loongarch/loongarch.cc (loongarch_print_operand_reloc):
Make "%T" output a comment marker if the operand is a memory
order for which the barrier won't be generated; remove "%t".
* config/loongarch/sync.md (atomic_cas_value_strong<mode>): Add
%T before "b 3f".
(atomic_cas_value_cmp_and_7_<mode>): Likewise.
Diffstat (limited to 'libjava')
0 files changed, 0 insertions, 0 deletions