]> git.ipfire.org Git - thirdparty/gcc.git/commit
LoongArch: Don't emit dbar 0x700 if -mld-seq-sa
authorXi Ruoyao <xry111@xry111.site>
Thu, 16 Nov 2023 01:30:14 +0000 (09:30 +0800)
committerXi Ruoyao <xry111@xry111.site>
Sat, 18 Nov 2023 17:11:13 +0000 (01:11 +0800)
commit181ed726b22afc3e2897447d0631ef0bcc2d106d
tree840fe90d262c120efb82275c374c3de2488686d1
parent5d3d60555346edd93a544d4f80a1eb1f8117808c
LoongArch: Don't emit dbar 0x700 if -mld-seq-sa

This option (CPUCFG word 0x3 bit 23) means "the hardware guarantee that
two loads on the same address won't be reordered with each other".  Thus
we can omit the "load-load" barrier dbar 0x700.

This is only a micro-optimization because dbar 0x700 is already treated
as nop if the hardware supports LD_SEQ_SA.

gcc/ChangeLog:

* config/loongarch/loongarch.cc (loongarch_print_operand): Don't
print dbar 0x700 if TARGET_LD_SEQ_SA.
* config/loongarch/sync.md (atomic_load<mode>): Likewise.
gcc/config/loongarch/loongarch.cc
gcc/config/loongarch/sync.md