aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-into-ssa.c
diff options
context:
space:
mode:
authorSteven Bosscher <steven@gcc.gnu.org>2012-08-16 10:52:14 +0000
committerSteven Bosscher <steven@gcc.gnu.org>2012-08-16 10:52:14 +0000
commit6d0c3afec6725fd97c4ef88f11e94b6336315533 (patch)
treee65720504a6ef8d7e205979cb6ddd502a52181c5 /gcc/tree-into-ssa.c
parent3bfdf3e648185618507f2c58c8fbe393d8caf286 (diff)
PR middle-end/54146
* tree-flow.h (compute_global_livein): Remove prototype. * tree-into-ssa.c (compute_global_livein): Remove function. * tree-ssa-loop-manip.c: Include gimple-pretty-print.h. (find_sibling_superloop): New function. (compute_live_loop_exits): New function. (add_exit_phis_edge): Rename to add_exit_phi. Do not allow inserting a PHI in a block that is not a loop exit for VAR. Add dumping if TDF_DETAILS. (add_exit_phis_var): Rewrite. (add_exit_phis): Update. (get_loops_exits): Rewrite to return an array of per-loop exits rather than one bitmap with all loop exits. (find_uses_to_rename_bb): Ignore virtual PHI nodes. (rewrite_into_loop_closed_ssa): Update. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@190442 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-into-ssa.c')
-rw-r--r--gcc/tree-into-ssa.c57
1 files changed, 0 insertions, 57 deletions
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index a9de96f992e..073a4881a62 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -404,63 +404,6 @@ set_current_def (tree var, tree def)
get_common_info (var)->current_def = def;
}
-
-/* Compute global livein information given the set of blocks where
- an object is locally live at the start of the block (LIVEIN)
- and the set of blocks where the object is defined (DEF_BLOCKS).
-
- Note: This routine augments the existing local livein information
- to include global livein (i.e., it modifies the underlying bitmap
- for LIVEIN). */
-
-void
-compute_global_livein (bitmap livein, bitmap def_blocks)
-{
- unsigned i;
- bitmap_iterator bi;
- VEC (basic_block, heap) *worklist;
-
- /* Normally the work list size is bounded by the number of basic
- blocks in the largest loop. We don't know this number, but we
- can be fairly sure that it will be relatively small. */
- worklist = VEC_alloc (basic_block, heap, MAX (8, n_basic_blocks / 128));
-
- EXECUTE_IF_SET_IN_BITMAP (livein, 0, i, bi)
- VEC_safe_push (basic_block, heap, worklist, BASIC_BLOCK (i));
-
- /* Iterate until the worklist is empty. */
- while (! VEC_empty (basic_block, worklist))
- {
- edge e;
- edge_iterator ei;
-
- /* Pull a block off the worklist. */
- basic_block bb = VEC_pop (basic_block, worklist);
-
- /* Make sure we have at least enough room in the work list
- for all predecessors of this block. */
- VEC_reserve (basic_block, heap, worklist, EDGE_COUNT (bb->preds));
-
- /* For each predecessor block. */
- FOR_EACH_EDGE (e, ei, bb->preds)
- {
- basic_block pred = e->src;
- int pred_index = pred->index;
-
- /* None of this is necessary for the entry block. */
- if (pred != ENTRY_BLOCK_PTR
- && ! bitmap_bit_p (def_blocks, pred_index)
- && bitmap_set_bit (livein, pred_index))
- {
- VEC_quick_push (basic_block, worklist, pred);
- }
- }
- }
-
- VEC_free (basic_block, heap, worklist);
-}
-
-
/* Cleans up the REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT flags for
all statements in basic block BB. */