summaryrefslogtreecommitdiff
path: root/gcc/cfg.c
diff options
context:
space:
mode:
authoraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2008-03-05 17:20:26 +0000
committeraldyh <aldyh@138bc75d-0d04-0410-961f-82ee72b054a4>2008-03-05 17:20:26 +0000
commitd03ba86f0cc373f30e8838c73e598cc767491b92 (patch)
tree581bbd0f679ef1aaf0ad42e7d8f0b56620d3e34a /gcc/cfg.c
parent7dfd128a2ffae583f0348aabdabb7eab57d6d6f3 (diff)
downloadgcc-d03ba86f0cc373f30e8838c73e598cc767491b92.tar.gz
* cfg.c: Include tree-flow.h.
(remove_edge_raw): Call redirect_edge_var_map_clear. (redirect_edge_succ_nodup): Call redirect_edge_var_map_dup. * tree-flow-inline.h (redirect_edge_var_map_def): New. (redirect_edge_var_map_result): New. * tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace PENDING_STMT use with redirect_edge_var_map_*. * tree-ssa.c (edge_var_maps): New definition. (redirect_edge_var_map_add): New. (redirect_edge_var_map_clear): New. (redirect_edge_var_map_dup): New. (redirect_edge_var_map_vector): New. (redirect_edge_var_map_destroy): New. (ssa_redirect_edge): Replace PENDING_STMT use with redirect_edge_var_map_*. (flush_pending_stmts): Same. (delete_tree_ssa): Destroy edge var map. * tree-flow.h (struct _edge_var_map): New. Define edge_var_map vector type. Declare redirect_edge_var_map_* prototypes. * Makefile.in (cfg.o): Depend on TREE_FLOW_H. * tree-cfg.c (reinstall_phi_args): Replace PENDING_STMT use with redirect_edge_var_map_*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@132903 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/cfg.c')
-rw-r--r--gcc/cfg.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/cfg.c b/gcc/cfg.c
index 8a83137aaa5..fe8dba984cf 100644
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -67,6 +67,7 @@ along with GCC; see the file COPYING3. If not see
#include "alloc-pool.h"
#include "df.h"
#include "cfgloop.h"
+#include "tree-flow.h"
/* The obstack on which the flow graph components are allocated. */
@@ -359,6 +360,9 @@ remove_edge_raw (edge e)
disconnect_src (e);
disconnect_dest (e);
+ /* This is probably not needed, but it doesn't hurt. */
+ redirect_edge_var_map_clear (e);
+
free_edge (e);
}
@@ -395,6 +399,7 @@ redirect_edge_succ_nodup (edge e, basic_block new_succ)
s->probability = REG_BR_PROB_BASE;
s->count += e->count;
remove_edge (e);
+ redirect_edge_var_map_dup (s, e);
e = s;
}
else