public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/111558] New: RISCV: shrink-wrapper optimization question
@ 2023-09-23 21:00 alexey.lapshin at espressif dot com
2023-09-23 21:17 ` [Bug rtl-optimization/111558] " pinskia at gcc dot gnu.org
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: alexey.lapshin at espressif dot com @ 2023-09-23 21:00 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111558
Bug ID: 111558
Summary: RISCV: shrink-wrapper optimization question
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: alexey.lapshin at espressif dot com
CC: manolis.tsamis at vrull dot eu
Target Milestone: ---
Created attachment 55977
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=55977&action=edit
shrink-synthetic-example.c
When I was studying shrink-wrapping behavior, I discovered something strange
code generation.
See the code and assembly at https://godbolt.org/z/P3WfTszYn
Every branch has the same save/restore callee-saved registers.
Therefore, the shrink-wrapping optimization may reduce the speed of the
function when input parameters are not zero...
I understand that this is not a synthetic code snippet...
But may this code generation be reproduced in real code (without asm inlining)?
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug rtl-optimization/111558] RISCV: shrink-wrapper optimization question
2023-09-23 21:00 [Bug c/111558] New: RISCV: shrink-wrapper optimization question alexey.lapshin at espressif dot com
@ 2023-09-23 21:17 ` pinskia at gcc dot gnu.org
2023-09-26 13:19 ` mxlol233 at outlook dot com
2023-09-26 13:26 ` mxlol233 at outlook dot com
2 siblings, 0 replies; 4+ messages in thread
From: pinskia at gcc dot gnu.org @ 2023-09-23 21:17 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111558
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |missed-optimization
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
>But may this code generation be reproduced in real code (without asm inlining)?
It could in theory but I highly doubt it since most of the time the code blocks
are not written in such a way they would happen this way where they are
independent and such. Maybe initialization code might be done this way but that
code is usually only executed once so the speed will not have a huge impact ...
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug rtl-optimization/111558] RISCV: shrink-wrapper optimization question
2023-09-23 21:00 [Bug c/111558] New: RISCV: shrink-wrapper optimization question alexey.lapshin at espressif dot com
2023-09-23 21:17 ` [Bug rtl-optimization/111558] " pinskia at gcc dot gnu.org
@ 2023-09-26 13:19 ` mxlol233 at outlook dot com
2023-09-26 13:26 ` mxlol233 at outlook dot com
2 siblings, 0 replies; 4+ messages in thread
From: mxlol233 at outlook dot com @ 2023-09-26 13:19 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111558
Xiao Ma <mxlol233 at outlook dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mxlol233 at outlook dot com
--- Comment #2 from Xiao Ma <mxlol233 at outlook dot com> ---
For this piece of code, LLVM seems to be a bit concise: during the pass of
Prologue/Epilogue Insertion & Frame Finalization, it only inserts sd/ld blocks
in the entry and exit BB:
https://godbolt.org/z/qxdrMKc46
^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug rtl-optimization/111558] RISCV: shrink-wrapper optimization question
2023-09-23 21:00 [Bug c/111558] New: RISCV: shrink-wrapper optimization question alexey.lapshin at espressif dot com
2023-09-23 21:17 ` [Bug rtl-optimization/111558] " pinskia at gcc dot gnu.org
2023-09-26 13:19 ` mxlol233 at outlook dot com
@ 2023-09-26 13:26 ` mxlol233 at outlook dot com
2 siblings, 0 replies; 4+ messages in thread
From: mxlol233 at outlook dot com @ 2023-09-26 13:26 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=111558
--- Comment #3 from Xiao Ma <mxlol233 at outlook dot com> ---
(In reply to Xiao Ma from comment #2)
> For this piece of code, LLVM seems to be a bit concise: during the pass of
> Prologue/Epilogue Insertion & Frame Finalization, it only inserts sd/ld
> blocks in the entry and exit BB:
>
> https://godbolt.org/z/qxdrMKc46
On the contrary, GCC emits sd/ld blocks for each of BB, in the pro_and_epilogue
pass:
https://godbolt.org/z/vY4M71snz
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2023-09-26 13:26 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-09-23 21:00 [Bug c/111558] New: RISCV: shrink-wrapper optimization question alexey.lapshin at espressif dot com
2023-09-23 21:17 ` [Bug rtl-optimization/111558] " pinskia at gcc dot gnu.org
2023-09-26 13:19 ` mxlol233 at outlook dot com
2023-09-26 13:26 ` mxlol233 at outlook dot com
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).