On 01-03-16 10:45, Richard Biener wrote:
On Tue, 1 Mar 2016, Tom de Vries wrote:

Hi,

this patch fixes graphite PR68659, which is a 6 regression.

The patch fixes two things:
- by handling new_expr == NULL_TREE in collect_all_ssa_names, it handles a
   COMPONENT_REF where operand 2 is NULL_TREE.
- it handles an ADDR_EXPR in get_new_name.
Together, they allow the currently failing test-case
gcc.dg/graphite/id-pr45230-1.c to pass.

Bootstrapped and reg-tested on x86_64.

OK for stage4 trunk?

@@ -1804,6 +1806,9 @@ get_new_name (basic_block new_bb, tree op,
    if (is_constant (op))
      return op;

+  if (TREE_CODE (op) == ADDR_EXPR)
+    return op;
+
    return get_rename (new_bb, op, old_bb, phi_kind);
  }


please instead change the is_constant (op) condition to
TREE_CODE (op) != SSA_NAME.

Done.

Bootstrapped and reg-tested on x86_64.

OK for stage4 trunk?

Thanks,
- Tom
Handle addr_expr and component_ref in graphite-ast-to-ast

2016-03-01  Tom de Vries  <t...@codesourcery.com>

	PR tree-optimization/68659
	* graphite-isl-ast-to-gimple.c (collect_all_ssa_names): Handle
	new_expr == NULL_TREE.
	(get_new_name): Handle ADDR_EXPR.

---
 gcc/graphite-isl-ast-to-gimple.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/gcc/graphite-isl-ast-to-gimple.c b/gcc/graphite-isl-ast-to-gimple.c
index d3614e4..89a4118 100644
--- a/gcc/graphite-isl-ast-to-gimple.c
+++ b/gcc/graphite-isl-ast-to-gimple.c
@@ -1403,6 +1403,8 @@ gsi_insert_earliest (gimple_seq seq)
 void translate_isl_ast_to_gimple::
 collect_all_ssa_names (tree new_expr, vec<tree> *vec_ssa)
 {
+  if (new_expr == NULL_TREE)
+    return;
 
   /* Rename all uses in new_expr.  */
   if (TREE_CODE (new_expr) == SSA_NAME)
@@ -1801,7 +1803,7 @@ get_new_name (basic_block new_bb, tree op,
 	      basic_block old_bb, phi_node_kind phi_kind) const
 {
   /* For constants the names are the same.  */
-  if (is_constant (op))
+  if (TREE_CODE (op) != SSA_NAME)
     return op;
 
   return get_rename (new_bb, op, old_bb, phi_kind);

Reply via email to