[preliminary patch] m32r: Fix so many (28) testsuite failures.
Kazu Hirata
kazu@cs.umass.edu
Wed Dec 17 07:55:00 GMT 2003
Hi,
Attached is a patch to fix so many testsuite failures.
Analyzing execute/20000412-3.c a little bit, there seems to be a
problem with the register allocator. Specifically, it assigns a
clobber, say (clobber (reg:SI 5)) in one insn even though that insn is
followed by another insn that uses (reg:SI 5). (-fnew-ra works fine
by the way.)
Guessing the register allocator may not be good at handling
complicated insns like "movstrsi_internal" in m32r.md, I disabled the
pattern. Doing so fixed so many regressions. (I am showing only one
line for testcases that fail on multiple combinations of options.)
-FAIL: gcc.c-torture/compile/20010328-1.c (test for excess errors)
-FAIL: gcc.c-torture/execute/20000412-3.c execution
-FAIL: gcc.c-torture/execute/20011113-1.c execution
-FAIL: gcc.c-torture/execute/20011121-1.c execution
-FAIL: gcc.c-torture/execute/20020206-1.c execution
-FAIL: gcc.c-torture/execute/20020215-1.c execution
-FAIL: gcc.c-torture/execute/20030914-1.c execution
-FAIL: gcc.c-torture/execute/20030914-2.c execution
-FAIL: gcc.c-torture/execute/920625-1.c execution
-FAIL: gcc.c-torture/execute/921013-1.c execution
-FAIL: gcc.c-torture/execute/921117-1.c execution
-FAIL: gcc.c-torture/execute/931004-11.c execution
-FAIL: gcc.c-torture/execute/990628-1.c compilation
-FAIL: gcc.c-torture/execute/builtins/string-4.c execution
-FAIL: gcc.c-torture/execute/builtins/string-5.c execution
-FAIL: gcc.c-torture/execute/builtins/string-7.c execution
-FAIL: gcc.c-torture/execute/builtins/string-9.c execution
-FAIL: gcc.c-torture/execute/builtins/string-asm-2.c execution
-FAIL: gcc.c-torture/execute/memcpy-1.c execution
-FAIL: gcc.c-torture/execute/memcpy-bi.c execution
-FAIL: gcc.c-torture/execute/string-opt-10.c execution
-FAIL: gcc.c-torture/execute/string-opt-12.c execution
-FAIL: gcc.c-torture/execute/string-opt-6.c execution
-FAIL: gcc.c-torture/execute/string-opt-7.c execution
-FAIL: gcc.c-torture/execute/struct-ret-1.c compilation
-FAIL: gcc.c-torture/execute/va-arg-22.c execution
-FAIL: gcc.c-torture/unsorted/structret.c
-FAIL: gcc.dg/const-elim-1.c scan-assembler-not L\$?C[^A-Z]
I know I am only hiding a bug, but I thought it might be worth sharing
this. I'll try to analyze this a little more tomorrow.
Kazu Hirata
2003-12-17 Kazu Hirata <kazu@cs.umass.edu>
* config/m32r/m32r.md (movstrsi): Disable.
(movstrsi_internal): Likewise.
Index: m32r.md
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/m32r/m32r.md,v
retrieving revision 1.33
diff -u -r1.33 m32r.md
--- m32r.md 17 Dec 2003 03:30:19 -0000 1.33
+++ m32r.md 17 Dec 2003 06:56:21 -0000
@@ -2557,7 +2557,7 @@
(match_operand:BLK 1 "general_operand" ""))
(use (match_operand:SI 2 "immediate_operand" ""))
(use (match_operand:SI 3 "immediate_operand" ""))])]
- ""
+ "0"
"
{
if (operands[0]) /* avoid unused code messages */
@@ -2577,7 +2577,7 @@
(set (match_dup 1) (plus:SI (match_dup 1) (match_dup 2)))
(clobber (match_scratch:SI 3 "=&r")) ;; temp 1
(clobber (match_scratch:SI 4 "=&r"))] ;; temp 2
- ""
+ "0"
"* m32r_output_block_move (insn, operands); return \"\"; "
[(set_attr "type" "store8")
(set_attr "length" "72")]) ;; Maximum
More information about the Gcc-patches
mailing list