From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30710 invoked by alias); 16 Jan 2012 08:24:32 -0000 Received: (qmail 30699 invoked by uid 22791); 16 Jan 2012 08:24:28 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 16 Jan 2012 08:24:16 +0000 From: "krebbel at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug bootstrap/51860] [4.7 regression] s390 esa mode bootstrap comparison failure since transactional memory branch merge Date: Mon, 16 Jan 2012 09:27:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: bootstrap X-Bugzilla-Keywords: X-Bugzilla-Severity: critical X-Bugzilla-Who: krebbel at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Priority: P1 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.7.0 X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 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 X-SW-Source: 2012-01/txt/msg01733.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51860 --- Comment #7 from Andreas Krebbel 2012-01-16 08:23:56 UTC --- Regarding the insn address the split is supposed to happen after the call_insn 3059. But the code I've added to keep the call_arg_location note after the call insn prevents that: /* Make sure we do not split between a call and its corresponding CALL_ARG_LOCATION note. */ if (CALL_P (insn)) { rtx next = NEXT_INSN (insn); if (next && NOTE_P (next) && NOTE_KIND (next) == NOTE_INSN_CALL_ARG_LOCATION) continue; } Then the split should occur just after the call_arg_location note but that code prevents that: /* We can insert the barrier only after a 'real' insn. */ if (GET_CODE (insn) != INSN && GET_CODE (insn) != CALL_INSN) continue; So the split in fact occurs after the next real insn which is the load zero. (call_insn 3059 39956 39958 (parallel [ (set (reg:SI 2 %r2) (call (mem:QI (reg/f:SI 11 %r11 [15205]) [0 identifier_global_value S1 A8]) (const_int 0 [0]))) (clobber (reg:SI 14 %r14)) ]) /build/gcc-head/gcc/c-family/c-common.c:5045 576 {*basr_r} (nil) (expr_list:REG_CFA_RESTORE (use (reg:SI 2 %r2)) (nil))) (note 39958 3059 37799 (nil) NOTE_INSN_CALL_ARG_LOCATION) (insn 37799 39958 44088 (set (reg:SI 1 %r1 [5752]) (const_int 0 [0])) /build/gcc-head/gcc/c-family/c-common.c:5045 67 {*movsi_esa} (nil)) (jump_insn 44088 37799 44089 (set (pc) (label_ref 44090)) /build/gcc-head/gcc/c-family/c-common.c:5045 561 {*jump31} (nil)