https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
--- Comment #8 from Jan Hubicka ---
Trunk optimized stuff return 0, but fails to optimize out functions which
becomes unused after indirect inlining.
With -fno-early-inlining we end up with:
int m ()
{
void * D.48296;
int __args#0;
struct
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
Andrew Pinski changed:
What|Removed |Added
Last reconfirmed|2014-01-29 00:00:00 |2016-8-12
Severity|normal
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
--- Comment #7 from Marc Glisse ---
There has been huge progress in gcc-5:
int m() ()
{
struct function h;
:
MEM[(int (*) (int) *)&h] = f;
h._M_invoker = _M_invoke;
h.D.27699._M_manager = _M_manager;
std::_Function_base::_Base_manag
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
Jan Hubicka changed:
What|Removed |Added
CC||mjambor at suse dot cz
--- Comment #6 from
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
--- Comment #5 from Marc Glisse ---
(In reply to Jan Hubicka from comment #3)
> The code in fold-const for nonzero check is really broken. I have somewerhe
> WIP symtab patch for doing this, but it is not completely trivial to hook it
> into fold
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
--- Comment #4 from Jan Hubicka ---
About the inlining issue, am not really sure how to handle this without
iterating optimizers and inliner like llvm does (Maxim had patch for this).
I wonder if we can't just declare the operator () always_inlin
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
--- Comment #3 from Jan Hubicka ---
The code in fold-const for nonzero check is really broken. I have somewerhe
WIP symtab patch for doing this, but it is not completely trivial to hook it
into fold-const when symtab is not built yet - just as in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
Richard Biener changed:
What|Removed |Added
Status|UNCONFIRMED |NEW
Last reconfirmed|
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59948
--- Comment #1 from Marc Glisse ---
(In reply to Marc Glisse from comment #0)
> if (f != 0B)
> // Shouldn't we know that f!=0? It is defined just above.
This happens because the test in fold-const.c is:
return !VAR_OR_FUNCTION_DECL_P