diff options
Diffstat (limited to 'gcc/tree-ssa-threadedge.c')
-rw-r--r-- | gcc/tree-ssa-threadedge.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c index 0ad2483..a72edc0 100644 --- a/gcc/tree-ssa-threadedge.c +++ b/gcc/tree-ssa-threadedge.c @@ -1358,6 +1358,7 @@ thread_across_edge (gcond *dummy_cond, edge e, bool handle_dominating_asserts, const_and_copies *const_and_copies, + avail_exprs_stack *avail_exprs_stack, tree (*simplify) (gimple, gimple)) { bitmap visited = BITMAP_ALLOC (NULL); @@ -1442,6 +1443,8 @@ thread_across_edge (gcond *dummy_cond, /* Push a fresh marker so we can unwind the equivalences created for each of E->dest's successors. */ 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); @@ -1493,6 +1496,8 @@ thread_across_edge (gcond *dummy_cond, } /* And unwind the equivalence table. */ + if (avail_exprs_stack) + avail_exprs_stack->pop_to_marker (); const_and_copies->pop_to_marker (); } BITMAP_FREE (visited); |