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] |
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] |