PR tree-optimization/38510
* graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
(translate_clast): Call recompute_all_dominators before
graphite_verify.
(gloog): Call recompute_all_dominators before graphite_verify.
2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
Jan Sjodin <jan.sjodin@amd.com>
PR tree-optimization/38500
* graphite.c (create_sese_edges): Call fix_loop_structure after
splitting blocks.
2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
PR tree-optimization/38510
* gcc.dg/graphite/pr38510.c: New.
2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
Jan Sjodin <jan.sjodin@amd.com>
PR tree-optimization/38500
* gcc.dg/graphite/pr38500.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@143094
138bc75d-0d04-0410-961f-
82ee72b054a4
+2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/38510
+ * graphite.c (recompute_all_dominators): Call mark_irreducible_loops.
+ (translate_clast): Call recompute_all_dominators before
+ graphite_verify.
+ (gloog): Call recompute_all_dominators before graphite_verify.
+
+2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
+ Jan Sjodin <jan.sjodin@amd.com>
+
+ PR tree-optimization/38500
+ * graphite.c (create_sese_edges): Call fix_loop_structure after
+ splitting blocks.
+
2009-01-05 Joel Sherrill <joel.sherrill@oarcorp.com>
* config.gcc: Add m32r*-*-rtems*.
static inline void
recompute_all_dominators (void)
{
+ mark_irreducible_loops ();
free_dominance_info (CDI_DOMINATORS);
free_dominance_info (CDI_POST_DOMINATORS);
calculate_dominance_info (CDI_DOMINATORS);
unmark_exit_edges (regions);
+ fix_loop_structure (NULL);
+
#ifdef ENABLE_CHECKING
verify_loop_structure ();
verify_dominators (CDI_DOMINATORS);
next_e = translate_clast (scop, context_loop,
((struct clast_guard *) stmt)->then,
true_e, ivstack);
+ recompute_all_dominators ();
graphite_verify ();
return translate_clast (scop, context_loop, stmt->next, last_e, ivstack);
}
next_e = translate_clast (scop, context_loop,
((struct clast_block *) stmt)->body,
next_e, ivstack);
+ recompute_all_dominators ();
graphite_verify ();
return translate_clast (scop, context_loop, stmt->next, next_e, ivstack);
}
if_region->region->exit->src,
if_region->false_region->exit,
if_region->true_region->exit);
+ recompute_all_dominators ();
graphite_verify ();
context_loop = SESE_ENTRY (SCOP_REGION (scop))->src->loop_father;
compute_cloog_iv_types (stmt);
new_scop_exit_edge = translate_clast (scop, context_loop,
stmt, if_region->true_region->entry,
&ivstack);
+ recompute_all_dominators ();
graphite_verify ();
cleanup_tree_cfg ();
recompute_all_dominators ();
+2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
+
+ PR tree-optimization/38510
+ * gcc.dg/graphite/pr38510.c: New.
+
+2009-01-05 Harsha Jagasia <harsha.jagasia@amd.com>
+ Jan Sjodin <jan.sjodin@amd.com>
+
+ PR tree-optimization/38500
+ * gcc.dg/graphite/pr38500.c: New.
+
2009-01-05 Laurent GUERBY <laurent@guerby.net>
* gcc.c-torture/compile/20001226-1.c: Generalize
--- /dev/null
+/* { dg-options "-O3 -fgraphite-identity" } */
+
+typedef unsigned char U8;
+extern char test1;
+
+char *Perl_screaminstr (int, int, int);
+
+void
+Perl_re_intuit_start( int minlen, char *strend, unsigned int flags, int i)
+{
+ register int start_shift = 0;
+ register int end_shift = 0;
+ register char *s;
+ char *strbeg;
+ char *t;
+ if(i > 0)
+ goto success_at_start;
+ int end = 0;
+ int eshift = (test1 ? Perl_utf8_distance((U8*)strend,(U8*)s) : (U8*)strend - (U8*)s) - end;
+ if (end_shift < eshift)
+ end_shift = eshift;
+ restart:
+ s = Perl_screaminstr(start_shift + (s - strbeg), end_shift, 0);
+ while( t < strend - minlen){
+ }
+ success_at_start:
+ eshift = (test1 ? Perl_utf8_distance((U8*)strend,(U8*)s) : (U8*)strend - (U8*)s) - end;
+ goto restart;
+}
--- /dev/null
+/* { dg-options "-O2 -fgraphite-identity" } */
+typedef long int integer;
+typedef double doublereal;
+
+static int balanc_(nm, n, a, low, igh, scale)
+doublereal *a;
+{
+ integer a_dim1, a_offset, i__1, i__2;
+ integer iexc;
+ integer i__, j, k, l, m;
+ integer jj;
+goto L100;
+L20:
+if (j == m) {
+goto L50;
+}
+for (i__ = 1; i__ <= i__1; ++i__) {
+a[i__ + j * a_dim1] = a[i__ + m * a_dim1];
+}
+L50:
+switch ((int)iexc) {
+case 2: goto L130;
+}
+L100:
+for (jj = 1; jj <= i__1; ++jj) {
+goto L20;
+}
+L130:
+for (j = k; j <= i__1; ++j) {
+goto L20;
+}
+}
+
+int pymol_rg_(integer *nm, integer *n, doublereal *a, doublereal *wr,
+ doublereal *fv1,integer *ierr)
+{
+ integer a_dim1, a_offset, z_dim1, z_offset;
+ integer is1, is2;
+ balanc_(nm, n, &a[a_offset], &is1, &is2, &fv1[1]);
+}