[Bug ipa/65270] [5 regression] ICF needs to match TYPE attributes on memory accesses
hubicka at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Tue Mar 3 18:23:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65270
Jan Hubicka <hubicka at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|RESOLVED |REOPENED
Resolution|FIXED |---
--- Comment #9 from Jan Hubicka <hubicka at gcc dot gnu.org> ---
Lets reopen this. I agree with other type flags - they seem safe except for
TYPE_ATTRIBUTES of functions I will add compare of today.
> No. But you can't compare restrict qualification by looking at a memory
> reference pair from function A and function B. You'd have to compare
> all data dependences somehow.
>
> You could get some cases by comparing function parameter types specially
> (but global vars also have an issue, as well as decl-by-reference
> aggregate parameters).
Would it be enough to
- require match on arguments/return value types (that should handle function
parameters as well as
- require match on all global variable types
> It seems to me that ICF isn't quite ready for prime time. Let's disable
> it by default for now, ok?
I also read the discussion on IRC and discussed with Jeff.
ICF has triggered interesting issues in alias/thunks areas. For a first time we
output a lot of non-MI thunks on main targets and expand_thunk was getting
things wrong in a nasty ways. ICF also produce a lot of aliases and excercise
symbol table code otherwise rarely used. Here I think it is valuable we fixed
those bugs that were semi-latent for years. I believe we are approaching
steady state - at the moment we do not have any other ICF related PR open. Jeff
suggested to wait 48 hours.
This PR is a result of my code audit I did over weekend. I fully leave the
decision with you. I agree ICF is causing a lot of issues late in release and
disabling it is a safe option. On the other hand I would be happy to work to
get it fixed and working - it is quite useful optimization.
More information about the Gcc-bugs
mailing list