aboutsummaryrefslogtreecommitdiff
path: root/gcc/flow.c
diff options
context:
space:
mode:
authorJeffrey D. Oldham <oldham@codesourcery.com>2000-07-31 17:33:28 +0000
committerMark Mitchell <mmitchel@gcc.gnu.org>2000-07-31 17:33:28 +0000
commitcdbca1727ce8d428964efcb2f20ee82142a2c762 (patch)
tree83e57a212d3697073b5085968a2756f1ce420f82 /gcc/flow.c
parentca47b7399421f0f36255d95f50953444b6812e11 (diff)
downloadgcc-cdbca1727ce8d428964efcb2f20ee82142a2c762.zip
gcc-cdbca1727ce8d428964efcb2f20ee82142a2c762.tar.gz
gcc-cdbca1727ce8d428964efcb2f20ee82142a2c762.tar.bz2
Makefile.in (ssa.o): Updated header files in dependences.
* Makefile.in (ssa.o): Updated header files in dependences. * basic-block.h: Added compute_immediate_postdominators declaration. * config/i386/i386.h (CONVERT_HARD_REGISTER_TO_SSA_P): Added definition. * flow.c (compute_immediate_dominators): Updated comment. (compute_immediate_postdominators): Added definition. * rtl.h (HARD_REGISTER_P): Added definition. * ssa.c: Include additional header files. (assert): Added definition. (ssa_rename_to_lookup): Added to reimplement ssa_rename_to to include select hard registers. (ssa_rename_to_insert): Likewise. (ssa_rename_from_initialize): Likewise. (ssa_rename_from_lookup): Likewise. (original_register): Likewise. (ssa_rename_from_insert): Added to reimplement ssa_rename_from to include select hard reigsters. (ssa_rename_from_traverse): Likewise. (ssa_rename_from_free): Likewise. (ssa_rename_from_print): Likewise. (ssa_rename_from_print_1): Likewise. (ssa_rename_from_hash_function): Likewise. (ssa_rename_from_equal): Likewise. (ssa_rename_from_delete): Likewise. (simplify_to_immediate_dominators): Removed in favor of flow.c:compute_immediate_dominators. (find_evaluations_1): Modified to work with hard registers. (insert_phi_node): Likewise. (insert_phi_nodes): Likewise. (struct rename_set_data): Updated prev_reg comment. (create_delayed_rename): Modified to work with hard registers. (RENAME_NO_RTX): Updated comment. (apply_delayed_renames): Modified to work with hard registers. (rename_insn_1): Likewise and added handling of CLOBBER rtls. (rename_block): Updated to use revised ssa_rename_to interface. (rename_registers): Updated to use revised ssa_rename_to and ssa_rename_from interface. (convert_to_ssa): Revised to use compute_immediate_dominators and deal with hard registers. (make_regs_equivalent_over_bad_edges): Modified to work with hard registers. Added check for illegal unification of hard register. (make_equivalent_phi_alternatives_equivalent): Modified to work with hard registers. (compute_conservative_reg_partition): Likewise. (coalesce_if_unconflicting): Modified to work with hard registers and check for conflicting hard registers. (mark_phi_and_copy_regs): Revised loop to work only on pseudo registers. (rename_equivalent_regs_in_insn): Modified to work with hard registers. (record_canonical_element_1): Added definition. (check_hard_regs_in_partition): Added definition. (convert_from_ssa): Added data structure deallocation and check for illegal hard register unification. (conflict_hard_regs_p): Added definition. * toplev.c (rest_of_compilation): Added comment. From-SVN: r35384
Diffstat (limited to 'gcc/flow.c')
-rw-r--r--gcc/flow.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/gcc/flow.c b/gcc/flow.c
index 4f64de9..1bd7fbc 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -6202,7 +6202,8 @@ compute_flow_dominators (dominators, post_dominators)
free (temp_bitmap);
}
-/* Given DOMINATORS, compute the immediate dominators into IDOM. */
+/* Given DOMINATORS, compute the immediate dominators into IDOM. If a
+ block dominates only itself, its entry remains as INVALID_BLOCK. */
void
compute_immediate_dominators (idom, dominators)
@@ -6242,6 +6243,19 @@ compute_immediate_dominators (idom, dominators)
sbitmap_vector_free (tmp);
}
+/* Given POSTDOMINATORS, compute the immediate postdominators into
+ IDOM. If a block is only dominated by itself, its entry remains as
+ INVALID_BLOCK. */
+
+void
+compute_immediate_postdominators (idom, postdominators)
+ int *idom;
+ sbitmap *postdominators;
+{
+ compute_immediate_dominators (idom, postdominators);
+ return;
+}
+
/* Recompute register set/reference counts immediately prior to register
allocation.