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]

Re: [autovect] merge from mainline


Thanks for the merge.

Dorit Naishlos wrote:
> 
> I temporarily disabled the dependence-distance stuff in autovect because it
> broke bootstrap after the merge, so until this functionality is restored we
> have the following test failures (on powerpc-darwin):
> 

Tell me if I can help with this.

> 
> We do have one SPEC failure with autovect, from sometime before the merge -
> an ICE in vortex during ivopts:
> 
> gcc -c -o query.o -O1 query.c
> query.c: In function 'Query_EndBuild':
> query.c:787: error: Definition in block 11 does not dominate use in block
> 12
> for SSA_NAME: ivtmp.191_79in statement:
> ivtmp.191_80 = PHI <ivtmp.191_79(12), 0(4)>;
> PHI argument
> ivtmp.191_79
> for PHI node
> ivtmp.191_80 = PHI <ivtmp.191_79(12), 0(4)>;
> query.c:787: internal compiler error: verify_ssa failed.
> 

This is my fault, here is a patch that I bootstrapped and tested on
x86 before the merge (on Friday). I will apply it for fixing this
problem.

Seb

Index: tree-scalar-evolution.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-scalar-evolution.c,v
retrieving revision 2.10.2.2
diff -d -u -p -r2.10.2.2 tree-scalar-evolution.c
--- tree-scalar-evolution.c	13 Jan 2005 18:13:45 -0000	2.10.2.2
+++ tree-scalar-evolution.c	28 Jan 2005 17:29:08 -0000
@@ -1532,14 +1532,15 @@ unify_peeled_chrec (tree loop_phi_node, 
 	 finally, return the unified chrec: {0, +, 1} for "x".  */
       tree stmt, var;
       block_stmt_iterator incr_at;
+      bool insert_after;
       basic_block bb;
 
       if (dump_file && (dump_flags & TDF_DETAILS))
 	fprintf (dump_file, "UNIFIED_one_more\n");
 
-      incr_at = bsi_last (EDGE_PRED (loop->latch, 0)->src);
-      create_iv (a, CHREC_RIGHT (chrec_b), NULL, loop, &incr_at, false, &var, 
-		 NULL);
+      standard_iv_increment_position (loop, &incr_at, &insert_after);
+      create_iv (a, CHREC_RIGHT (chrec_b), NULL, loop, &incr_at, insert_after, 
+		 &var, NULL);
 
       stmt = build2 (MODIFY_EXPR, void_type_node, PHI_RESULT (loop_phi_node), 
 		     var);
Index: tree-ssa-loop-manip.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree-ssa-loop-manip.c,v
retrieving revision 2.15.2.2
diff -d -u -p -r2.15.2.2 tree-ssa-loop-manip.c
--- tree-ssa-loop-manip.c	11 Jan 2005 15:38:57 -0000	2.15.2.2
+++ tree-ssa-loop-manip.c	28 Jan 2005 17:29:08 -0000
@@ -504,7 +504,7 @@ standard_iv_increment_position (struct l
       || (last && TREE_CODE (last) != LABEL_EXPR))
     {
       *bsi = bsi_last (latch);
-      *insert_after = true;
+      *insert_after = !last || !stmt_ends_bb_p (last);
     }
   else
     {


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