diff options
author | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-18 19:12:22 +0000 |
---|---|---|
committer | law <law@138bc75d-0d04-0410-961f-82ee72b054a4> | 2015-09-18 19:12:22 +0000 |
commit | 1c71d7c13095b42febf4ad0f38980caebf385e29 (patch) | |
tree | ef3a3f2d651a8a3df1740bb1002c0178bde1c455 /gcc/tree-ssa-threadedge.c | |
parent | 1e5769bdcb033c6791939dbf2397831fe18a58e6 (diff) | |
download | gcc-1c71d7c13095b42febf4ad0f38980caebf385e29.tar.gz |
[PATCH] avail_exprs is no longer file scoped
* tree-ssa-dom.c (avail_exprs): No longer file scoped. Bury
it into the avail_exprs_stack class.
(pass_dominator::execute): Corresponding changes to declaration
and initialization of avail_exprs. Pass avail_exprs to
dump_dominator_optimization_stats.
(record_cond): Extract avail_exprs from avail_exprs_stack.
(lookup_avail_expr): Similarly.
(htab_staticstics): Remove unnecessary prototype. Move to earlier
position in file.
(dump_dominator_optimization_stats): Make static and prototype.
Add argument for the hash table to dump.
(debug_dominator_optimization_stats): Remove.
* tree-ssa-dom.h (dump_dominator_optimization_stats): Remove
prototype.
(debug_dominator_optimization_stats): Similarly.
* tree-ssa-scopedtables.h (class avail_exprs_stack): Add missing
"void" in prototype for pop_to_marker method. Add accessor method
for the underlying avail_exprs table.
* tree-ssa-threadedge.c: Remove trailing whitespace.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@227921 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-threadedge.c')
-rw-r--r-- | gcc/tree-ssa-threadedge.c | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index a72edc0daef..48c4ca765db 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -94,12 +94,12 @@ potentially_threadable_block (basic_block bb) /* Special case. We can get blocks that are forwarders, but are not optimized away because they forward from outside a loop to the loop header. We want to thread through them as we can - sometimes thread to the loop exit, which is obviously profitable. + sometimes thread to the loop exit, which is obviously profitable. the interesting case here is when the block has PHIs. */ if (gsi_end_p (gsi_start_nondebug_bb (bb)) && !gsi_end_p (gsi_start_phis (bb))) return true; - + /* If BB has a single successor or a single predecessor, then there is no threading opportunity. */ if (single_succ_p (bb) || single_pred_p (bb)) @@ -148,7 +148,7 @@ lhs_of_dominating_assert (tree op, basic_block bb, gimple stmt) edge E. Record unwind information for the equivalences onto STACK. If a PHI which prevents threading is encountered, then return FALSE - indicating we should not thread this edge, else return TRUE. + indicating we should not thread this edge, else return TRUE. If SRC_MAP/DST_MAP exist, then mark the source and destination SSA_NAMEs of any equivalences recorded. We use this to make invalidation after @@ -423,10 +423,10 @@ record_temporary_equivalences_from_stmts_at_dest (edge e, } /* Record the context sensitive equivalence if we were able - to simplify this statement. + to simplify this statement. If we have traversed a backedge at some point during threading, - then always enter something here. Either a real equivalence, + then always enter something here. Either a real equivalence, or a NULL_TREE equivalence which is effectively invalidation of prior equivalences. */ if (cached_lhs @@ -1238,7 +1238,7 @@ thread_through_normal_block (edge e, /* Second case. */ return -1; } - + /* If we stopped at a COND_EXPR or SWITCH_EXPR, see if we know which arm will be taken. */ if (gimple_code (stmt) == GIMPLE_COND @@ -1285,7 +1285,7 @@ thread_through_normal_block (edge e, /* See if we can thread through DEST as well, this helps capture secondary effects of threading without having to re-run DOM or - VRP. + VRP. We don't want to thread back to a block we have already visited. This may be overly conservative. */ @@ -1445,7 +1445,7 @@ thread_across_edge (gcond *dummy_cond, const_and_copies->push_marker (); if (avail_exprs_stack) avail_exprs_stack->push_marker (); - + /* Avoid threading to any block we have already visited. */ bitmap_clear (visited); bitmap_set_bit (visited, e->src->index); |