public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug target/112970] New: LoongArch: Suboptimal code when the address and the value of an array element are both used
@ 2023-12-11 20:53 xry111 at gcc dot gnu.org
  2023-12-12  6:54 ` [Bug target/112970] " xry111 at gcc dot gnu.org
  2023-12-12  6:55 ` xry111 at gcc dot gnu.org
  0 siblings, 2 replies; 3+ messages in thread
From: xry111 at gcc dot gnu.org @ 2023-12-11 20:53 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112970

            Bug ID: 112970
           Summary: LoongArch: Suboptimal code when the address and the
                    value of an array element are both used
           Product: gcc
           Version: 14.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xry111 at gcc dot gnu.org
  Target Milestone: ---

int d[2];
struct r { int *p, v; };
struct r test() { return (struct r){&d[1], d[1]}; }

is compiled to:

        la.local        $r12,.LANCHOR0
        ld.wu   $r5,$r12,4
        la.local        $r4,.LANCHOR0+4

But it's better to be:

        la.local        $r4,.LANCHOR0+4
        ld.wu   $r5,$r4,0

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug target/112970] LoongArch: Suboptimal code when the address and the value of an array element are both used
  2023-12-11 20:53 [Bug target/112970] New: LoongArch: Suboptimal code when the address and the value of an array element are both used xry111 at gcc dot gnu.org
@ 2023-12-12  6:54 ` xry111 at gcc dot gnu.org
  2023-12-12  6:55 ` xry111 at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: xry111 at gcc dot gnu.org @ 2023-12-12  6:54 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112970

--- Comment #1 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
With -mexplicit-relocs=auto the generated code is sub-optimal as well:

        pcalau12i       $r12,%pc_hi20(.LANCHOR0)
        addi.d  $r12,$r12,%pc_lo12(.LANCHOR0)
        ld.wu   $r5,$r12,4
        addi.d  $r4,$r12,4

^ permalink raw reply	[flat|nested] 3+ messages in thread

* [Bug target/112970] LoongArch: Suboptimal code when the address and the value of an array element are both used
  2023-12-11 20:53 [Bug target/112970] New: LoongArch: Suboptimal code when the address and the value of an array element are both used xry111 at gcc dot gnu.org
  2023-12-12  6:54 ` [Bug target/112970] " xry111 at gcc dot gnu.org
@ 2023-12-12  6:55 ` xry111 at gcc dot gnu.org
  1 sibling, 0 replies; 3+ messages in thread
From: xry111 at gcc dot gnu.org @ 2023-12-12  6:55 UTC (permalink / raw)
  To: gcc-bugs

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112970

--- Comment #2 from Xi Ruoyao <xry111 at gcc dot gnu.org> ---
(In reply to Xi Ruoyao from comment #1)
> With -mexplicit-relocs=auto the generated code is sub-optimal as well:

I mean "always", not "auto".

> 	pcalau12i	$r12,%pc_hi20(.LANCHOR0)
> 	addi.d	$r12,$r12,%pc_lo12(.LANCHOR0)
> 	ld.wu	$r5,$r12,4
> 	addi.d	$r4,$r12,4

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2023-12-12  6:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-12-11 20:53 [Bug target/112970] New: LoongArch: Suboptimal code when the address and the value of an array element are both used xry111 at gcc dot gnu.org
2023-12-12  6:54 ` [Bug target/112970] " xry111 at gcc dot gnu.org
2023-12-12  6:55 ` xry111 at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).