From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 70757 invoked by alias); 3 Mar 2015 18:23:35 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 70684 invoked by uid 48); 3 Mar 2015 18:23:31 -0000 From: "hubicka at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/65270] [5 regression] ICF needs to match TYPE attributes on memory accesses Date: Tue, 03 Mar 2015 18:23:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: hubicka at gcc dot gnu.org X-Bugzilla-Status: REOPENED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: rguenth at gcc dot gnu.org X-Bugzilla-Target-Milestone: 5.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_status resolution Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-03/txt/msg00373.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65270 Jan Hubicka changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|FIXED |--- --- Comment #9 from Jan Hubicka --- 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.