public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug lto/47205] New: GCC emits optimized out noinline function @ 2011-01-07 11:45 d.g.gorbachev at gmail dot com 2011-01-07 12:48 ` Jan Hubicka ` (4 more replies) 0 siblings, 5 replies; 6+ messages in thread From: d.g.gorbachev at gmail dot com @ 2011-01-07 11:45 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47205 Summary: GCC emits optimized out noinline function Product: gcc Version: 4.6.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: lto AssignedTo: unassigned@gcc.gnu.org ReportedBy: d.g.gorbachev@gmail.com $ gcc -O2 -flto -fwhole-program main.c foo.c $ nm a.out | grep foo 08048380 t foo.1988 ========= main.c ======== extern int foo(void); int main(void) { return foo() * 0; } ========================= ========= foo.c ========= __attribute__((noinline)) int foo(void) { return 0x2a; } ========================= ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Bug lto/47205] New: GCC emits optimized out noinline function 2011-01-07 11:45 [Bug lto/47205] New: GCC emits optimized out noinline function d.g.gorbachev at gmail dot com @ 2011-01-07 12:48 ` Jan Hubicka 2011-01-07 12:52 ` [Bug lto/47205] " hubicka at ucw dot cz ` (3 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: Jan Hubicka @ 2011-01-07 12:48 UTC (permalink / raw) To: d.g.gorbachev at gmail dot com; +Cc: gcc-bugs > extern int foo(void); > > int main(void) > { > return foo() * 0; > } This is because gimple part of optimizers for some reason leads to the following in the optimized dump: main () { <bb 2>: foo (); return 0; } and only RTL optimizers do the trick. This is weird since pure/const detect function as pure (seen in pure-const dump) Read info for foo/2 const nothrow pure const state: const previously known state: const but tree-ssa-dce apparently fails to remove the statement. I guess it is confused by lack of return value. I will take a look. But this is tree-optimization bug. Honza ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug lto/47205] GCC emits optimized out noinline function 2011-01-07 11:45 [Bug lto/47205] New: GCC emits optimized out noinline function d.g.gorbachev at gmail dot com 2011-01-07 12:48 ` Jan Hubicka @ 2011-01-07 12:52 ` hubicka at ucw dot cz 2011-01-07 12:58 ` [Bug tree-optimization/47205] " hubicka at gcc dot gnu.org ` (2 subsequent siblings) 4 siblings, 0 replies; 6+ messages in thread From: hubicka at ucw dot cz @ 2011-01-07 12:52 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47205 --- Comment #1 from Jan Hubicka <hubicka at ucw dot cz> 2011-01-07 12:47:23 UTC --- > extern int foo(void); > > int main(void) > { > return foo() * 0; > } This is because gimple part of optimizers for some reason leads to the following in the optimized dump: main () { <bb 2>: foo (); return 0; } and only RTL optimizers do the trick. This is weird since pure/const detect function as pure (seen in pure-const dump) Read info for foo/2 const nothrow pure const state: const previously known state: const but tree-ssa-dce apparently fails to remove the statement. I guess it is confused by lack of return value. I will take a look. But this is tree-optimization bug. Honza ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/47205] GCC emits optimized out noinline function 2011-01-07 11:45 [Bug lto/47205] New: GCC emits optimized out noinline function d.g.gorbachev at gmail dot com 2011-01-07 12:48 ` Jan Hubicka 2011-01-07 12:52 ` [Bug lto/47205] " hubicka at ucw dot cz @ 2011-01-07 12:58 ` hubicka at gcc dot gnu.org 2011-01-07 12:59 ` hubicka at gcc dot gnu.org 2021-08-30 4:54 ` pinskia at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: hubicka at gcc dot gnu.org @ 2011-01-07 12:58 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47205 Jan Hubicka <hubicka at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2011.01.07 12:48:37 Component|lto |tree-optimization CC| |hubicka at gcc dot gnu.org Ever Confirmed|0 |1 Severity|normal |enhancement --- Comment #2 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-01-07 12:48:37 UTC --- recategorized thus. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/47205] GCC emits optimized out noinline function 2011-01-07 11:45 [Bug lto/47205] New: GCC emits optimized out noinline function d.g.gorbachev at gmail dot com ` (2 preceding siblings ...) 2011-01-07 12:58 ` [Bug tree-optimization/47205] " hubicka at gcc dot gnu.org @ 2011-01-07 12:59 ` hubicka at gcc dot gnu.org 2021-08-30 4:54 ` pinskia at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: hubicka at gcc dot gnu.org @ 2011-01-07 12:59 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47205 --- Comment #3 from Jan Hubicka <hubicka at gcc dot gnu.org> 2011-01-07 12:51:58 UTC --- Hmm, at second tought I guess statement gets improperly updated for lack of side effect in fixup_cfg. Will look into it. Even that is however not enough for function to be optimized away since we don't re-do IPA after local optimization. This would require even more complicating the optimization queue. So it is hard to solve fully. ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Bug tree-optimization/47205] GCC emits optimized out noinline function 2011-01-07 11:45 [Bug lto/47205] New: GCC emits optimized out noinline function d.g.gorbachev at gmail dot com ` (3 preceding siblings ...) 2011-01-07 12:59 ` hubicka at gcc dot gnu.org @ 2021-08-30 4:54 ` pinskia at gcc dot gnu.org 4 siblings, 0 replies; 6+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-08-30 4:54 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47205 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |missed-optimization --- Comment #4 from Andrew Pinski <pinskia at gcc dot gnu.org> --- So after the final IPA pass we never update the cgraph again and prune out unused functions. PR 94818 is another example, there might be a few others. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2021-08-30 4:54 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-01-07 11:45 [Bug lto/47205] New: GCC emits optimized out noinline function d.g.gorbachev at gmail dot com 2011-01-07 12:48 ` Jan Hubicka 2011-01-07 12:52 ` [Bug lto/47205] " hubicka at ucw dot cz 2011-01-07 12:58 ` [Bug tree-optimization/47205] " hubicka at gcc dot gnu.org 2011-01-07 12:59 ` hubicka at gcc dot gnu.org 2021-08-30 4:54 ` 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).