From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 60716 invoked by alias); 3 Jul 2015 21:04:46 -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 50326 invoked by uid 48); 3 Jul 2015 21:04:42 -0000 From: "vmakarov at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/66334] cleanup block fails to initialize EBX Date: Fri, 03 Jul 2015 21:04:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 6.0 X-Bugzilla-Keywords: wrong-code X-Bugzilla-Severity: normal X-Bugzilla-Who: vmakarov at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 6.0 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: 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-07/txt/msg00304.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66334 --- Comment #9 from Vladimir Makarov --- (In reply to H.J. Lu from comment #8) > (In reply to Vladimir Makarov from comment #7) > > I've looked at this. Insn 34 is transformed into > > > > ebx=ebx > > > > as pseudo 87 gets ebx. At the very end. LRA removes the useless insn. > > Therefore there is no insn setting ebx. > > > > H.J., is it really a problem? > > The problem is although ebx, which is used for PIC, is callee saved, but > ebx has junk when called from BUILT_IN_UNWIND_RESUME. LRA should > reinitialize it. I see. It would be nice that eh machinary saved ebx. But even if it is done, we would have compatibility problem with already existing code. So there is no other way than fixing it GCC. I guess it is a continuation of work to use PIC hard reg by introducing PIC pseudo. PIC pseudo should conflict with PIC hard reg because ebx can be corrupted in this case. So in general your solution proposal is right but it needs more details. I will work on the patch and commit it on next week. Thanks.