public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/101474] New: -fipa-icf generates worse code for identical function
@ 2021-07-16 16:33 vegard.nossum at oracle dot com
2021-07-16 16:42 ` [Bug tree-optimization/101474] SRA sometimes produces worse code with inline functions (seen with -fipa-icf sometimes) pinskia at gcc dot gnu.org
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: vegard.nossum at oracle dot com @ 2021-07-16 16:33 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101474
Bug ID: 101474
Summary: -fipa-icf generates worse code for identical function
Product: gcc
Version: 12.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: vegard.nossum at oracle dot com
Target Milestone: ---
Created attachment 51166
--> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51166&action=edit
Test case
I've come across a weird behaviour when using -fipa-icf, could maybe be related
to bug 80277.
Build with -O1 -fipa-icf and the second version of the identical function
actually has worse codegen than if you have just one of them there or than if
you hadn't passed -fipa-icf at all.
See example: https://godbolt.org/z/n8zz947aK
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/101474] SRA sometimes produces worse code with inline functions (seen with -fipa-icf sometimes)
2021-07-16 16:33 [Bug c/101474] New: -fipa-icf generates worse code for identical function vegard.nossum at oracle dot com
@ 2021-07-16 16:42 ` pinskia at gcc dot gnu.org
2021-07-19 6:21 ` rguenth at gcc dot gnu.org
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-07-16 16:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101474
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Summary|-fipa-icf generates worse |SRA sometimes produces
|code for identical function |worse code with inline
| |functions (seen with
| |-fipa-icf sometimes)
Ever confirmed|0 |1
Last reconfirmed| |2021-07-16
Status|UNCONFIRMED |NEW
--- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This worse code generation has nothing to do with -fipa-icf really as shown by:
struct t {
char x;
int y;
};
void fn1(struct t *p, struct t v)
{
*p = v;
}
void fn3(struct t *p, struct t v)
{
fn1(p, v);
}
------ CUT ----
What is happening is SRA decides it is best to do a full scalar replacement for
the v that is inlined into fn3 (from fn1).
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/101474] SRA sometimes produces worse code with inline functions (seen with -fipa-icf sometimes)
2021-07-16 16:33 [Bug c/101474] New: -fipa-icf generates worse code for identical function vegard.nossum at oracle dot com
2021-07-16 16:42 ` [Bug tree-optimization/101474] SRA sometimes produces worse code with inline functions (seen with -fipa-icf sometimes) pinskia at gcc dot gnu.org
@ 2021-07-19 6:21 ` rguenth at gcc dot gnu.org
2021-11-22 6:42 ` pinskia at gcc dot gnu.org
2021-11-22 7:03 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: rguenth at gcc dot gnu.org @ 2021-07-19 6:21 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101474
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jamborm at gcc dot gnu.org
--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Yes, when SRA decomposes a copy it leaves out padding which means we later fail
to apply store-merging and thus end up generating worse code for a simple
aggregate copy. SRA assumes the total scalarization transform allow followup
optimizations, if this doesn't happen it's hardly a profitable transform.
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/101474] SRA sometimes produces worse code with inline functions (seen with -fipa-icf sometimes)
2021-07-16 16:33 [Bug c/101474] New: -fipa-icf generates worse code for identical function vegard.nossum at oracle dot com
2021-07-16 16:42 ` [Bug tree-optimization/101474] SRA sometimes produces worse code with inline functions (seen with -fipa-icf sometimes) pinskia at gcc dot gnu.org
2021-07-19 6:21 ` rguenth at gcc dot gnu.org
@ 2021-11-22 6:42 ` pinskia at gcc dot gnu.org
2021-11-22 7:03 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-11-22 6:42 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101474
Andrew Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution|--- |DUPLICATE
--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This is a dup of bug 96252.
*** This bug has been marked as a duplicate of bug 96252 ***
^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug tree-optimization/101474] SRA sometimes produces worse code with inline functions (seen with -fipa-icf sometimes)
2021-07-16 16:33 [Bug c/101474] New: -fipa-icf generates worse code for identical function vegard.nossum at oracle dot com
` (2 preceding siblings ...)
2021-11-22 6:42 ` pinskia at gcc dot gnu.org
@ 2021-11-22 7:03 ` pinskia at gcc dot gnu.org
3 siblings, 0 replies; 5+ messages in thread
From: pinskia at gcc dot gnu.org @ 2021-11-22 7:03 UTC (permalink / raw)
To: gcc-bugs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101474
--- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Note ICF behavior and inlining is what PR 96252 is about.
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-11-22 7:03 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-07-16 16:33 [Bug c/101474] New: -fipa-icf generates worse code for identical function vegard.nossum at oracle dot com
2021-07-16 16:42 ` [Bug tree-optimization/101474] SRA sometimes produces worse code with inline functions (seen with -fipa-icf sometimes) pinskia at gcc dot gnu.org
2021-07-19 6:21 ` rguenth at gcc dot gnu.org
2021-11-22 6:42 ` pinskia at gcc dot gnu.org
2021-11-22 7:03 ` pinskia 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).