This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
RFA: patch solving PR16445 for ia64
- 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, 12 Jul 2004 13:45:55 -0400
- Subject: RFA: patch solving PR16445 for ia64
The following patch solves PR16445 reported by H.J. Lu.
The code in question is insertion of additional nops after a shift
insn. To do it, the bundle selector for the insn before which the nops
should be added is searched for. The code checks that there are at most 3
insns in the bundle. A pseudo insn (prologue_use) is also in the
bundle. The code counts it too. Therefore checking failed.
The patch was tested on the mainline and gcc-3_4-branch on
regression tests (for -march=itanium1). It looked ok.
Is it ok to commit it into gcc mainline and gcc-3_4-branch?
Vlad
2004-07-12 Vladimir Makarov <vmakarov@redhat.com>
PR target/16445
* config/ia64/ia64.c (bundling): Don't count ignored insns.
Index: config/ia64/ia64.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/ia64/ia64.c,v
retrieving revision 1.265.2.12
diff -c -p -d -r1.265.2.12 ia64.c
*** config/ia64/ia64.c 8 Jul 2004 22:15:45 -0000 1.265.2.12
--- config/ia64/ia64.c 9 Jul 2004 19:31:13 -0000
*************** bundling (FILE *dump, int verbose, rtx p
*** 7149,7155 ****
= gen_bundle_selector (GEN_INT (2)); /* -> MFI */
break;
}
! else if (recog_memoized (last) != CODE_FOR_insn_group_barrier)
n++;
/* Some check of correctness: the stop is not at the
bundle start, there are no more 3 insns in the bundle,
--- 7149,7157 ----
= gen_bundle_selector (GEN_INT (2)); /* -> MFI */
break;
}
! else if (recog_memoized (last) != CODE_FOR_insn_group_barrier
! && (ia64_safe_itanium_class (last)
! != ITANIUM_CLASS_IGNORE))
n++;
/* Some check of correctness: the stop is not at the
bundle start, there are no more 3 insns in the bundle,