This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RFA: patch fixing PR/15598 (an itanium1 gcc bug).
- From: Vladimir Makarov <vmakarov at redhat dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: Jim Wilson <wilson at specifixinc dot com>
- Date: Mon, 07 Jun 2004 14:40:41 -0400
- Subject: RFA: patch fixing PR/15598 (an itanium1 gcc bug).
The following patch solves a problem (PR 15598) reported by H.J. Lu.
The problem was in discrepency between dfa scheduler and ia64
bundler. The dfa scheduler tries to insert 2 nops between the insn
placed in M slot for itanium1. The bundler did it only for TYPE_M insn.
TYPE_A insn can be placed in M-slot too, so the bundler should try to
insert 2nops for TYPE_A insn too.
Vlad
2004-06-07 Vladimir Makarov <vmakarov@redhat.com>
PR target/15598
* config/ia64/ia64.c (bundling): Add missed TYPE_A.
Index: config/ia64/ia64.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v
retrieving revision 1.287
diff -u -p -r1.287 ia64.c
--- config/ia64/ia64.c 20 May 2004 02:15:42 -0000 1.287
+++ config/ia64/ia64.c 7 Jun 2004 18:12:44 -0000
@@ -6954,7 +6954,8 @@ bundling (FILE *dump, int verbose, rtx p
guarantee issuing all insns on the same cycle for
Itanium 1, we need to issue 2 nops after the first M
insn (MnnMII where n is a nop insn). */
- || (type == TYPE_M && ia64_tune == PROCESSOR_ITANIUM
+ || ((type == TYPE_M || type == TYPE_A)
+ && ia64_tune == PROCESSOR_ITANIUM
&& !bundle_end_p && pos == 1))
issue_nops_and_insn (curr_state, 2, insn, bundle_end_p,
only_bundle_end_p);