This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: m68k bootstrapping broken
- From: Bernardo Innocenti <bernie at develer dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: Richard Zidlicky <rz at linux-m68k dot org>, Andreas Schwab <schwab at suse dot de>, gcc at gnu dot org, gcc-patches at gcc dot gnu dot org
- Date: Mon, 09 Feb 2004 02:46:03 +0100
- Subject: Re: m68k bootstrapping broken
- Organization: Develer S.r.l.
- References: <400069E6.5080301@develer.com> <20040110173359.A3722@redhat.com> <4000EE16.9020907@develer.com> <20040111145603.GA5311@linux-m68k.org> <m3hdz26ycf.fsf@whitebox.m5r.de> <m3d69q6xju.fsf@whitebox.m5r.de> <20040112232206.GA8966@linux-m68k.org> <jek73w835a.fsf@sykes.suse.de> <20040113221343.GB26292@linux-m68k.org> <40072026.2020601@develer.com> <20040115234609.GA22149@redhat.com>
Richard Henderson wrote:
On Fri, Jan 16, 2004 at 12:20:06AM +0100, Bernardo Innocenti wrote:
Both versions are fine, but I wonder why a different
instruction pattern has been generated.
Something in the register allocator (or subsequent passes) got miscompiled.
You'll need to look at all the dumps to find where the first difference is
found. When you find it, that's the pass to start looking at.
I've now found the time to resume working on this. It seems
the breakage happens at RTL generation time or even before.
Also interesting is that the list of objects that fail the comparison test
is slightly different between m68k-netbsd and m68k-linux (e.g: web.o
differs only on m68k-netbsdelf). Perhaps caused by target macro
expansion producing slightly different code.
This is what I get with bitmap.c:
diff -u stage1_dumps/bitmap.c.01.rtl stage2_dumps/bitmap.c.01.rtl
--- stage1_dumps/bitmap.c.01.rtl 2004-02-09 03:32:38.000000000 +0200
+++ stage2_dumps/bitmap.c.01.rtl 2004-02-09 03:34:52.000000000 +0200
@@ -5,163 +5,167 @@
(note 2 1 3 NOTE_INSN_DELETED)
-(note 3 2 4 NOTE_INSN_FUNCTION_BEG)
+(insn 3 2 4 (set (reg:SI 30)
+ (reg/f:SI 25 virtual-incoming-args)) -1 (nil)
+ (nil))
+
+(note 4 3 5 NOTE_INSN_FUNCTION_BEG)
-(note 4 3 5 NOTE_INSN_DELETED)
+(note 5 4 6 NOTE_INSN_DELETED)
-(note 5 4 6 0xc03d47f8 NOTE_INSN_BLOCK_BEG)
+(note 6 5 7 0xc03d47f8 NOTE_INSN_BLOCK_BEG)
-(note 6 5 7 NOTE_INSN_DELETED)
+(note 7 6 8 NOTE_INSN_DELETED)
-(note 7 6 8 ("../../combined-3.4/gcc/bitmap.c") 158)
+(note 8 7 9 ("../../combined-3.4/gcc/bitmap.c") 158)
-(insn 8 7 9 (set (mem/f:SI (symbol_ref:SI ("bitmap_free") [flags 0x2] <var_decl 0xc03e42e6 bitmap_free>) [0 bitmap_free+0 S4 A16])
+(insn 9 8 10 (set (mem/f:SI (symbol_ref:SI ("bitmap_free") [flags 0x2] <var_decl 0xc03e42e6 bitmap_free>) [0 bitmap_free+0 S4 A16])
(const_int 0 [0x0])) -1 (nil)
(nil))
-(note 9 8 10 ("../../combined-3.4/gcc/bitmap.c") 159)
+(note 10 9 11 ("../../combined-3.4/gcc/bitmap.c") 159)
-(insn 10 9 11 (set (cc0)
+(insn 11 10 12 (set (cc0)
(mem/f:SI (symbol_ref:SI ("bitmap_obstack_init") [flags 0x2] <var_decl 0xc03e4212 bitmap_obstack_init>) [0 bitmap_obstack_init+0 S4 A16])) -1 (nil)
(nil))
[...lots of other changes...]
--
// Bernardo Innocenti - Develer S.r.l., R&D dept.
\X/ http://www.develer.com/