summaryrefslogtreecommitdiff
path: root/gcc/tree-into-ssa.c
diff options
context:
space:
mode:
authorbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-07-01 05:50:51 +0000
committerbstarynk <bstarynk@138bc75d-0d04-0410-961f-82ee72b054a4>2008-07-01 05:50:51 +0000
commite49e8bd540832217538f9720f502da8c20f1f9b0 (patch)
tree8f6bc6f898cfafd809ea3bf6f2a7660a896f9a40 /gcc/tree-into-ssa.c
parentb528597c9f3f2e3a64a664c7be6c82a7c2688287 (diff)
downloadgcc-e49e8bd540832217538f9720f502da8c20f1f9b0.tar.gz
2008-07-01 Basile Starynkevitch <basile@starynkevitch.net>
MELT branch merged with trunk r137307 git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/melt-branch@137309 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-into-ssa.c')
-rw-r--r--gcc/tree-into-ssa.c64
1 files changed, 2 insertions, 62 deletions
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index c0bebf73bf0..c9e99efa9d1 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -985,66 +985,6 @@ prune_unused_phi_nodes (bitmap phis, bitmap kills, bitmap uses)
free (defs);
}
-/* Given a set of blocks with variable definitions (DEF_BLOCKS),
- return a bitmap with all the blocks in the iterated dominance
- frontier of the blocks in DEF_BLOCKS. DFS contains dominance
- frontier information as returned by compute_dominance_frontiers.
-
- The resulting set of blocks are the potential sites where PHI nodes
- are needed. The caller is responsible for freeing the memory
- allocated for the return value. */
-
-static bitmap
-compute_idf (bitmap def_blocks, bitmap *dfs)
-{
- bitmap_iterator bi;
- unsigned bb_index, i;
- VEC(int,heap) *work_stack;
- bitmap phi_insertion_points;
-
- work_stack = VEC_alloc (int, heap, n_basic_blocks);
- phi_insertion_points = BITMAP_ALLOC (NULL);
-
- /* Seed the work list with all the blocks in DEF_BLOCKS. We use
- VEC_quick_push here for speed. This is safe because we know that
- the number of definition blocks is no greater than the number of
- basic blocks, which is the initial capacity of WORK_STACK. */
- EXECUTE_IF_SET_IN_BITMAP (def_blocks, 0, bb_index, bi)
- VEC_quick_push (int, work_stack, bb_index);
-
- /* Pop a block off the worklist, add every block that appears in
- the original block's DF that we have not already processed to
- the worklist. Iterate until the worklist is empty. Blocks
- which are added to the worklist are potential sites for
- PHI nodes. */
- while (VEC_length (int, work_stack) > 0)
- {
- bb_index = VEC_pop (int, work_stack);
-
- /* Since the registration of NEW -> OLD name mappings is done
- separately from the call to update_ssa, when updating the SSA
- form, the basic blocks where new and/or old names are defined
- may have disappeared by CFG cleanup calls. In this case,
- we may pull a non-existing block from the work stack. */
- gcc_assert (bb_index < (unsigned) last_basic_block);
-
- EXECUTE_IF_AND_COMPL_IN_BITMAP (dfs[bb_index], phi_insertion_points,
- 0, i, bi)
- {
- /* Use a safe push because if there is a definition of VAR
- in every basic block, then WORK_STACK may eventually have
- more than N_BASIC_BLOCK entries. */
- VEC_safe_push (int, heap, work_stack, i);
- bitmap_set_bit (phi_insertion_points, i);
- }
- }
-
- VEC_free (int, heap, work_stack);
-
- return phi_insertion_points;
-}
-
-
/* Return the set of blocks where variable VAR is defined and the blocks
where VAR is live on entry (livein). Return NULL, if no entry is
found in DEF_BLOCKS. */
@@ -1171,8 +1111,8 @@ insert_phi_nodes_for (tree var, bitmap phi_insertion_points, bool update_p)
}
else
{
- tree sym = DECL_P (var) ? var : SSA_NAME_VAR (var);
- phi = create_phi_node (sym, bb);
+ gcc_assert (DECL_P (var));
+ phi = create_phi_node (var, bb);
}
/* Mark this PHI node as interesting for update_ssa. */