This is the mail archive of the gcc-patches@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]

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);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]