public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/111467] New: REE failing to eliminate redundant extension due to multiple reaching def(s)
@ 2023-09-18 22:32 vineetg at gcc dot gnu.org
2023-09-18 22:55 ` [Bug rtl-optimization/111467] " vineetg at gcc dot gnu.org
2023-09-19 3:00 ` law at gcc dot gnu.org
0 siblings, 2 replies; 3+ messages in thread
From: vineetg at gcc dot gnu.org @ 2023-09-18 22:32 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111467
Bug ID: 111467
Summary: REE failing to eliminate redundant extension due to
multiple reaching def(s)
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: vineetg at gcc dot gnu.org
Reporter: vineetg at gcc dot gnu.org
CC: jeffreyalaw at gmail dot com, jivanhakobyan9 at gmail dot com,
kito at gcc dot gnu.org, palmer at gcc dot gnu.org
Target Milestone: ---
For the trivial test case below (credit goes to Palmer for mentioning this
almost 2 years ago).
int
foo6(int a, int b)
{
return a > b ? a : b;
}
-O2 -march=rv64gc
foo6:
mv a5,a1
bge a1,a0,.L5
mv a5,a0
.L5:
sext.w a0,a5
ret
REE fails to eliminate the sign extension due to multiple reaching definitions
constraint.
I don't know how involved or runtime cost relaxing the constraint is, so
opening this PR to investigate.
FWIW a zba build generates a max insn, eliminating the sext.w, but the vanilla
case shows where things can possibly be improved.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug rtl-optimization/111467] REE failing to eliminate redundant extension due to multiple reaching def(s)
2023-09-18 22:32 [Bug rtl-optimization/111467] New: REE failing to eliminate redundant extension due to multiple reaching def(s) vineetg at gcc dot gnu.org
@ 2023-09-18 22:55 ` vineetg at gcc dot gnu.org
2023-09-19 3:00 ` law at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: vineetg at gcc dot gnu.org @ 2023-09-18 22:55 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111467
--- Comment #1 from Vineet Gupta <vineetg at gcc dot gnu.org> ---
(insn 8 4 11 2 (set (reg:SI 15 a5 [orig:137 b ] [137]) <--- DEF #1
(reg:SI 11 a1 [orig:136 b ] [136])) "max.c":12:20 207 {*movsi_internal}
(nil))
(jump_insn 11 8 22 2 (set (pc)
(if_then_else (ge (reg/v:DI 11 a1 [orig:136 b ] [136])
(reg/v:DI 10 a0 [orig:135 a ] [135]))
(label_ref 13)
(pc))) "max.c":12:20 273 {*branchdi}
(int_list:REG_BR_PROB 536870916 (nil))
-> 13)
(insn 12 22 13 3 (set (reg:SI 15 a5 [orig:137 b ] [137]) <--- DEF #2
(reg:SI 10 a0 [orig:135 a ] [135])) "max.c":12:20 207 {*movsi_internal}
(nil))
(code_label 13 12 23 4 2 (nil) [1 uses])
(insn 19 14 20 4 (set (reg/i:DI 10 a0) <-- USE: Multiple reaching DEFs
(sign_extend:DI (reg:SI 15 a5 [orig:137 b ] [137]))) "max.c":13:1 122
{extendsidi2}
(nil))
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Bug rtl-optimization/111467] REE failing to eliminate redundant extension due to multiple reaching def(s)
2023-09-18 22:32 [Bug rtl-optimization/111467] New: REE failing to eliminate redundant extension due to multiple reaching def(s) vineetg at gcc dot gnu.org
2023-09-18 22:55 ` [Bug rtl-optimization/111467] " vineetg at gcc dot gnu.org
@ 2023-09-19 3:00 ` law at gcc dot gnu.org
1 sibling, 0 replies; 3+ messages in thread
From: law at gcc dot gnu.org @ 2023-09-19 3:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111467
Jeffrey A. Law <law at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |law at gcc dot gnu.org
--- Comment #2 from Jeffrey A. Law <law at gcc dot gnu.org> ---
I thought REE handled multiple reaching definition. So this is a bit of a
surprise.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2023-09-19 3:00 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-18 22:32 [Bug rtl-optimization/111467] New: REE failing to eliminate redundant extension due to multiple reaching def(s) vineetg at gcc dot gnu.org
2023-09-18 22:55 ` [Bug rtl-optimization/111467] " vineetg at gcc dot gnu.org
2023-09-19 3:00 ` law 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).