This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

m68k-linux bootstrap broken


Hi,

The following patch seems to break m68k-linux:

2002-02-20  Alexandre Oliva  <aoliva@redhat.com>

	* combine.c (do_SUBST): Sanity check substitutions of
	CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs.
	(subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a
	CONST_INT into its operand.
	(known_cond): Likewise, for ZERO_EXTEND.
	* simplify-rtx.c (simplify_unary_operation): Fix condition to
	allow for simplification of wide modes.  Reject CONST_INTs in
	ZERO_EXTEND when their actual mode is not given.

The discussion about this patch is here:
http://gcc.gnu.org/ml/gcc-patches/2002-02/threads.html#00710

I attached the precompiled and a bit reduced file, which shows the
problem (a m68k-elf cross compiler should produce the same).
During cse this

(insn 2255 2254 523 (set (strict_low_part (subreg:QI (reg:SI 371) 3))
        (reg:QI 372)) -1 (nil)
    (expr_list:REG_EQUAL (zero_extend:SI (reg:QI 372))
        (nil)))

becomes

(insn 2255 2254 546 (set (strict_low_part (subreg:QI (reg:SI 371) 3))
        (reg:QI 102)) 38 {*m68k.md:1072} (nil)
    (expr_list:REG_EQUAL (zero_extend:SI (const_int -72 [0xffffffb8]))
        (nil)))

and gcse later dies on this. I need now some help to find the real
problem. Without above patch this transformation is still the same, so
that change isn't probably the real problem. I tried to find out why cse
is doing this, but I didn't get very far yet.
Any ideas?

bye, Roman

Attachment: typeck.i.gz
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]