diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2009-11-25 04:53:05 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2009-11-25 04:53:05 +0000 |
commit | 947121b8e60842d7501f280e6223bce5808ad85f (patch) | |
tree | 668cfd71bd9cfb766393fb0077c4d1ec35ef8ba3 | |
parent | d48e288db9948aff8d1d75af78d8bb30ef31b12c (diff) | |
download | gcc-947121b8e60842d7501f280e6223bce5808ad85f.zip gcc-947121b8e60842d7501f280e6223bce5808ad85f.tar.gz gcc-947121b8e60842d7501f280e6223bce5808ad85f.tar.bz2 |
graphite-sese-to-poly.c (gsi_for_ssa_name_def): Removed.
2009-10-05 Sebastian Pop <sebastian.pop@amd.com>
* graphite-sese-to-poly.c (gsi_for_ssa_name_def): Removed.
(insert_out_of_ssa_copy): Directly use gsi_after_labels and
gsi_for_stmt.
From-SVN: r154558
-rw-r--r-- | gcc/ChangeLog.graphite | 6 | ||||
-rw-r--r-- | gcc/graphite-sese-to-poly.c | 46 |
2 files changed, 20 insertions, 32 deletions
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 0122034..034a835 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,5 +1,11 @@ 2009-10-05 Sebastian Pop <sebastian.pop@amd.com> + * graphite-sese-to-poly.c (gsi_for_ssa_name_def): Removed. + (insert_out_of_ssa_copy): Directly use gsi_after_labels and + gsi_for_stmt. + +2009-10-05 Sebastian Pop <sebastian.pop@amd.com> + * graphite-clast-to-gimple.c (build_cloog_prog): Use pbb_index. * graphite-interchange.c (pbb_do_interchange): Same. * graphite-poly.c (print_scattering_function): Same. diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c index 057a0bd..25dc566 100644 --- a/gcc/graphite-sese-to-poly.c +++ b/gcc/graphite-sese-to-poly.c @@ -1858,45 +1858,15 @@ build_scop_drs (scop_p scop) build_pbb_drs (pbb); } -/* Return a gsi at the position of the VAR definition. */ - -static gimple_stmt_iterator -gsi_for_ssa_name_def (tree var) -{ - gimple stmt; - basic_block bb; - gimple_stmt_iterator gsi; - gimple_stmt_iterator psi; - - gcc_assert (TREE_CODE (var) == SSA_NAME); - - stmt = SSA_NAME_DEF_STMT (var); - bb = gimple_bb (stmt); - - for (psi = gsi_start_phis (bb); !gsi_end_p (psi); gsi_next (&psi)) - if (stmt == gsi_stmt (psi)) - return gsi_after_labels (bb); - - for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) - if (stmt == gsi_stmt (gsi)) - { - gsi_next (&gsi); - return gsi; - } - - gcc_unreachable (); - return gsi; -} - /* Insert the assignment "RES := VAR" just after the definition of VAR. */ static void insert_out_of_ssa_copy (tree res, tree var) { - gimple_stmt_iterator gsi = gsi_for_ssa_name_def (var); gimple stmt; gimple_seq stmts; gimple_stmt_iterator si; + gimple_stmt_iterator gsi; var = force_gimple_operand (var, &stmts, true, NULL_TREE); stmt = gimple_build_assign (res, var); @@ -1904,7 +1874,19 @@ insert_out_of_ssa_copy (tree res, tree var) stmts = gimple_seq_alloc (); si = gsi_last (stmts); gsi_insert_after (&si, stmt, GSI_NEW_STMT); - gsi_insert_seq_before (&gsi, stmts, GSI_NEW_STMT); + + stmt = SSA_NAME_DEF_STMT (var); + if (gimple_code (stmt) == GIMPLE_PHI) + { + gsi = gsi_after_labels (gimple_bb (stmt)); + gsi_insert_seq_before (&gsi, stmts, GSI_NEW_STMT); + } + else + { + gcc_assert (gimple_code (stmt) == GIMPLE_ASSIGN); + gsi = gsi_for_stmt (stmt); + gsi_insert_seq_after (&gsi, stmts, GSI_NEW_STMT); + } } /* Insert on edge E the assignment "RES := EXPR". */ |