diff options
author | Jeff Law <law@redhat.com> | 2015-10-29 14:37:01 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2015-10-29 14:37:01 -0600 |
commit | 334b4842a280bf7fde59f1c844099678a0fe219d (patch) | |
tree | e3383887c06bf39776d85ce45967e12daa3339bc /gcc/tree-ssa-scopedtables.c | |
parent | 5a978b9f8899d6fc42364c0db8ed13b674a5ffb0 (diff) | |
download | gcc-334b4842a280bf7fde59f1c844099678a0fe219d.zip gcc-334b4842a280bf7fde59f1c844099678a0fe219d.tar.gz gcc-334b4842a280bf7fde59f1c844099678a0fe219d.tar.bz2 |
[PATCH] Remove unnecessary invalidation support in threading
2015-10-29 Jeff Law <law@redhat.com>
* tree-ssa-scopedtables.h (const_and_copies): Remove invalidate
method.
* tree-ssa-scopedtables.h (const_and_copies::invalidate): Remove.
* tree-ssa-threadedge.c
(record_temporary_equivalences_from_stmts_at_dest): Remove
backedge_seen argument and associated code which invalidated
equivalences based on the value of that argument.
(thread_through_normal_block): Corresponding changes.
From-SVN: r229559
Diffstat (limited to 'gcc/tree-ssa-scopedtables.c')
-rw-r--r-- | gcc/tree-ssa-scopedtables.c | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/gcc/tree-ssa-scopedtables.c b/gcc/tree-ssa-scopedtables.c index db3f954..ae5acc2 100644 --- a/gcc/tree-ssa-scopedtables.c +++ b/gcc/tree-ssa-scopedtables.c @@ -669,45 +669,6 @@ const_and_copies::record_const_or_copy (tree x, tree y, tree prev_x) m_stack.quick_push (x); } -/* A new value has been assigned to LHS. If necessary, invalidate any - equivalences that are no longer valid. This includes invaliding - LHS and any objects that are currently equivalent to LHS. - - Finding the objects that are currently marked as equivalent to LHS - is a bit tricky. We could walk the ssa names and see if any have - SSA_NAME_VALUE that is the same as LHS. That's expensive. - - However, it's far more efficient to look at the unwinding stack as - that will have all context sensitive equivalences which are the only - ones that we really have to worry about here. */ -void -const_and_copies::invalidate (tree lhs) -{ - - /* The stack is an unwinding stack. If the current element is NULL - then it's a "stop unwinding" marker. Else the current marker is - the SSA_NAME with an equivalence and the prior entry in the stack - is what the current element is equivalent to. */ - for (int i = m_stack.length() - 1; i >= 0; i--) - { - /* Ignore the stop unwinding markers. */ - if ((m_stack)[i] == NULL) - continue; - - /* We want to check the current value of stack[i] to see if - it matches LHS. If so, then invalidate. */ - if (SSA_NAME_VALUE ((m_stack)[i]) == lhs) - record_const_or_copy ((m_stack)[i], NULL_TREE); - - /* Remember, we're dealing with two elements in this case. */ - i--; - } - - /* And invalidate any known value for LHS itself. */ - if (SSA_NAME_VALUE (lhs)) - record_const_or_copy (lhs, NULL_TREE); -} - bool expr_elt_hasher::equal (const value_type &p1, const compare_type &p2) { |