This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH,M32C]:Mismatch of instruction pattern.
- From: DJ Delorie <dj at redhat dot com>
- To: naveenh at KPITCummins dot com
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 30 May 2006 13:23:02 -0400
- Subject: Re: [PATCH,M32C]:Mismatch of instruction pattern.
- References: <1F211FE03383644EAA6BB7A52FCD9B9B1945EA@sohm.kpit.com>
Sorry for the delay, between the libgcc bug and taking some time off
last week I only now have both sets of test results. There are some
regressions caused by your patch (attached), did you see these
in your testing? I suspect they may be caused by setting flags
wrong, for example in addsi3:
+ [(set_attr "flags" "oszc,oszc,oszc,oszc,oszc,oszc,oszc,oszc")]
You can't set flags this way because the opcodes you use do *not* set
the flags as if the chip had done a true single-insn addsi (they're
set according to the last half-add done), so you have to set the flags
to "x" instead, so that gcc won't assume it can rely on them (and thus
won't remove an intermediate compare).
Multilib: m32c-sim/-mcpu=m16c
PASS-FAIL: gcc.c-torture/execute/20000402-1.c execution, -O0
PASS-FAIL: gcc.c-torture/execute/20020615-1.c execution, -O0
PASS-FAIL: gcc.c-torture/execute/20020615-1.c execution, -O1
PASS-FAIL: gcc.c-torture/execute/20020615-1.c execution, -O2
PASS-FAIL: gcc.c-torture/execute/20020615-1.c execution, -O3 -fomit-frame-pointer
PASS-FAIL: gcc.c-torture/execute/20020615-1.c execution, -O3 -g
PASS-FAIL: gcc.c-torture/execute/20020615-1.c execution, -Os
PASS-FAIL: gcc.c-torture/execute/920501-2.c execution, -O0
PASS-FAIL: gcc.c-torture/execute/920501-2.c execution, -O1
PASS-FAIL: gcc.c-torture/execute/920501-2.c execution, -O2
PASS-FAIL: gcc.c-torture/execute/920501-2.c execution, -O3 -fomit-frame-pointer
PASS-FAIL: gcc.c-torture/execute/920501-2.c execution, -O3 -fomit-frame-pointer -funroll-loops
PASS-FAIL: gcc.c-torture/execute/920501-2.c execution, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions
PASS-FAIL: gcc.c-torture/execute/920501-2.c execution, -O3 -g
PASS-FAIL: gcc.c-torture/execute/920501-2.c execution, -Os
PASS-FAIL: gcc.c-torture/execute/920721-1.c execution, -O0
PASS-FAIL: gcc.c-torture/execute/920721-1.c execution, -O1
PASS-FAIL: gcc.c-torture/execute/920721-1.c execution, -O2
PASS-FAIL: gcc.c-torture/execute/920721-1.c execution, -Os
PASS-FAIL: gcc.c-torture/execute/920726-1.c execution, -O0
PASS-FAIL: gcc.c-torture/execute/920726-1.c execution, -O1
PASS-FAIL: gcc.c-torture/execute/920726-1.c execution, -O2
PASS-FAIL: gcc.c-torture/execute/920726-1.c execution, -O3 -fomit-frame-pointer
PASS-FAIL: gcc.c-torture/execute/920726-1.c execution, -O3 -fomit-frame-pointer -funroll-loops
PASS-FAIL: gcc.c-torture/execute/920726-1.c execution, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions
PASS-FAIL: gcc.c-torture/execute/920726-1.c execution, -O3 -g
PASS-FAIL: gcc.c-torture/execute/920726-1.c execution, -Os
PASS-FAIL: gcc.c-torture/execute/arith-rand.c execution, -O0
PASS-FAIL: gcc.c-torture/execute/arith-rand.c execution, -O1
PASS-FAIL: gcc.c-torture/execute/arith-rand.c execution, -O2
PASS-FAIL: gcc.c-torture/execute/arith-rand.c execution, -O3 -fomit-frame-pointer
PASS-FAIL: gcc.c-torture/execute/arith-rand.c execution, -O3 -fomit-frame-pointer -funroll-loops
PASS-FAIL: gcc.c-torture/execute/arith-rand.c execution, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions
PASS-FAIL: gcc.c-torture/execute/arith-rand.c execution, -O3 -g
PASS-FAIL: gcc.c-torture/execute/arith-rand.c execution, -Os
PASS-FAIL: gcc.c-torture/execute/divconst-2.c execution, -O0
PASS-FAIL: gcc.c-torture/execute/divconst-2.c execution, -O1
PASS-FAIL: gcc.c-torture/execute/divconst-2.c execution, -O2
PASS-FAIL: gcc.c-torture/execute/divconst-2.c execution, -O3 -fomit-frame-pointer
PASS-FAIL: gcc.c-torture/execute/divconst-2.c execution, -O3 -fomit-frame-pointer -funroll-loops
PASS-FAIL: gcc.c-torture/execute/divconst-2.c execution, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions
PASS-FAIL: gcc.c-torture/execute/divconst-2.c execution, -O3 -g
PASS-FAIL: gcc.c-torture/execute/divconst-2.c execution, -Os
PASS-FAIL: gcc.c-torture/execute/divmod-1.c execution, -O0
PASS-FAIL: gcc.c-torture/execute/divmod-1.c execution, -O1
PASS-FAIL: gcc.c-torture/execute/divmod-1.c execution, -O2
PASS-FAIL: gcc.c-torture/execute/divmod-1.c execution, -Os
PASS-FAIL: gcc.c-torture/execute/index-1.c compilation, -O1
PASS-FAIL: gcc.c-torture/execute/index-1.c compilation, -O2
PASS-FAIL: gcc.c-torture/execute/index-1.c compilation, -O3 -fomit-frame-pointer
PASS-FAIL: gcc.c-torture/execute/index-1.c compilation, -O3 -g
PASS-FAIL: gcc.c-torture/execute/index-1.c compilation, -Os
Multilib: m32c-sim/-mcpu=m32c
PASS-FAIL: gcc.c-torture/execute/pr17133.c compilation, -O1
PASS-FAIL: gcc.c-torture/execute/pr17133.c compilation, -O2
PASS-FAIL: gcc.c-torture/execute/pr17133.c compilation, -O3 -fomit-frame-pointer
PASS-FAIL: gcc.c-torture/execute/pr17133.c compilation, -O3 -fomit-frame-pointer -funroll-loops
PASS-FAIL: gcc.c-torture/execute/pr17133.c compilation, -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions
PASS-FAIL: gcc.c-torture/execute/pr17133.c compilation, -O3 -g
PASS-FAIL: gcc.c-torture/execute/pr17133.c compilation, -Os
Multilib: