diff options
author | Jeff Law <law@redhat.com> | 2004-11-12 21:18:54 -0700 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2004-11-12 21:18:54 -0700 |
commit | 92b6dff30288af56b6373689489a69d7e02f4193 (patch) | |
tree | f0bf0eacf8ffa54f821595a192ad4a94667a8d45 /gcc/tree-ssa-loop-manip.c | |
parent | 2256aa1cff25a0ea9c5b699795a773a93f11f565 (diff) | |
download | gcc-92b6dff30288af56b6373689489a69d7e02f4193.zip gcc-92b6dff30288af56b6373689489a69d7e02f4193.tar.gz gcc-92b6dff30288af56b6373689489a69d7e02f4193.tar.bz2 |
tree-cfg.c (hashtab.h): Include.
* tree-cfg.c (hashtab.h): Include.
(struct edge_to_case_leader_elt): New structure.
(edge_to_case_leader): New.
(edge_to_case_leader_hash): New hashtable hasing function.
(edge_to_case_leader_eq): New hashtable equality function.
(record_switch_edge): New function.
(get_case_leader_for_edge, get_case_leader_for_edge): New functions.
(make_switch_expr_edges): Build the edge-to-case-leader
hash table. Tear down the hash table when we're done.
(cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of
CASE_LABEL.
(tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes.
(tree_redirect_edge_and_branch, case SWITCH_EXPR): Update
to use new concept of case leaders to reduce overhead of
redirecting outgoing edges from switch statements.
* tree.c (get_case_label): New function.
* tree.h (CASE_LABEL): Define in terms of get_case_label.
(CASE_LEADER_OR_LABEL): Define.
From-SVN: r90570
Diffstat (limited to 'gcc/tree-ssa-loop-manip.c')
0 files changed, 0 insertions, 0 deletions