Message ID | 56D6FB53.6040303@mentor.com |
---|---|
State | New |
Headers | show |
On Wed, 2 Mar 2016, Tom de Vries wrote: > 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? Ok. Richard.
Handle addr_expr and component_ref in graphite-ast-to-ast 2016-03-01 Tom de Vries <tom@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);