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 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,

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