This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [tree-ssa]: Recent stmt_ann checking breaks SSAPRE
On Tue, 1 Jul 2003, Diego Novillo wrote:
> On Tue, 2003-07-01 at 15:43, Daniel Berlin wrote:
>
> > PS I've successfully bootstrapped with SSAPRE on on powerpc-darwin
> > (ignoring mudflap), and x86 (all languages but ADA). Could you give it
> > a try on ia64 or some weirder platform while i work through regression
> > tests?
> >
> I tested the attached patch.
>
> 1. On alpha, we get warnings for uninitialized variables (that I
> guess are PRE'd away) on attribs.c and c-cppbuiltin.c. I added
> -Wno-error for attribs.c, but we should find out why that's
> happening.
> 2. On ppc64, genconditions enters an infinite loop.
> 3. On ia64, gengtype fails to run.
>
> Probably the best bet now is to build crosses for these and check the
> testsuite.
Okeydokey.
>
>
> Diego.
>
Index: toplev.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/toplev.c,v
retrieving revision 1.654.2.57
diff -d -c -p -r1.654.2.57 toplev.c
*** toplev.c 13 Jun 2003 19:00:17 -0000 1.654.2.57
--- toplev.c 1 Jul 2003 20:52:15 -0000
*************** parse_options_and_default_flags (argc, a
*** 5114,5119 ****
--- 5114,5120 ----
flag_tree_dce = 1;
flag_tree_copyprop = 1;
flag_tree_dom = 1;
+ flag_tree_pre = 1;
}
if (optimize >= 2)
Index: tree-dfa.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-dfa.c,v
retrieving revision 1.1.4.125
diff -d -c -p -r1.1.4.125 tree-dfa.c
*** tree-dfa.c 1 Jul 2003 04:04:31 -0000 1.1.4.125
--- tree-dfa.c 1 Jul 2003 20:52:15 -0000
*************** create_stmt_ann (tree t)
*** 1065,1071 ****
stmt_ann_t ann;
#if defined ENABLE_CHECKING
! if (!is_gimple_stmt (t)
|| (t->common.ann
&& t->common.ann->common.type != STMT_ANN))
abort ();
--- 1065,1071 ----
stmt_ann_t ann;
#if defined ENABLE_CHECKING
! if ((!is_gimple_stmt (t) && !is_essa_node (t))
|| (t->common.ann
&& t->common.ann->common.type != STMT_ANN))
abort ();
Index: tree-flow-inline.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/Attic/tree-flow-inline.h,v
retrieving revision 1.1.2.38
diff -d -c -p -r1.1.2.38 tree-flow-inline.h
*** tree-flow-inline.h 1 Jul 2003 04:04:31 -0000 1.1.2.38
--- tree-flow-inline.h 1 Jul 2003 20:52:15 -0000
*************** stmt_ann (t)
*** 52,58 ****
tree t;
{
#if defined ENABLE_CHECKING
! if (!is_gimple_stmt (t))
abort ();
#endif
--- 52,58 ----
tree t;
{
#if defined ENABLE_CHECKING
! if (!is_gimple_stmt (t) && !is_essa_node (t))
abort ();
#endif
Index: tree.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.c,v
retrieving revision 1.263.2.38
diff -d -c -p -r1.263.2.38 tree.c
*** tree.c 1 Jul 2003 04:04:32 -0000 1.263.2.38
--- tree.c 1 Jul 2003 20:52:15 -0000
*************** body_is_empty (t)
*** 5378,5381 ****
--- 5378,5392 ----
return true;
}
+ bool
+ is_essa_node (t)
+ tree t;
+ {
+ if (TREE_CODE (t) == ELEFT_NODE || TREE_CODE (t) == EPHI_NODE
+ || TREE_CODE (t) == EUSE_NODE || TREE_CODE (t) == EEXIT_NODE
+ || TREE_CODE (t) == EKILL_NODE)
+ return true;
+ return false;
+ }
+
#include "gt-tree.h"
Index: tree.h
===================================================================
RCS file: /cvs/gcc/gcc/gcc/tree.h,v
retrieving revision 1.342.2.73
diff -d -c -p -r1.342.2.73 tree.h
*** tree.h 1 Jul 2003 19:50:45 -0000 1.342.2.73
--- tree.h 1 Jul 2003 20:52:15 -0000
*************** extern tree get_callee_fndecl
*** 2991,2996 ****
--- 2991,2997 ----
extern void set_decl_assembler_name PARAMS ((tree));
extern int type_num_arguments PARAMS ((tree));
extern tree lhd_unsave_expr_now PARAMS ((tree));
+ extern bool is_essa_node PARAMS ((tree));
/* In stmt.c */