diff options
author | Richard Henderson <rth@redhat.com> | 2012-02-10 09:44:31 -0800 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2012-02-10 09:44:31 -0800 |
commit | 1d4fb4935cf2e224a01e6409341fb6ad5eb0462d (patch) | |
tree | 4dee112990f9f516b3426813bcdbf020af010066 /gcc/tree-ssa-dce.c | |
parent | 1e98f62d742e5c5a56f150d5e857dd083d9a10d9 (diff) | |
download | gcc-1d4fb4935cf2e224a01e6409341fb6ad5eb0462d.tar.gz |
tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
* tree-ssa-dce.c (propagate_necessity): Handle GIMPLE_TRANSACTION.
* tree-ssa-operands.c (parse_ssa_operands): Add virtual operands
for GIMPLE_TRANSACTION. Tidy if's into a switch.
From-SVN: r184107
Diffstat (limited to 'gcc/tree-ssa-dce.c')
-rw-r--r-- | gcc/tree-ssa-dce.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c index ccdf14a1702..ace9ef9972d 100644 --- a/gcc/tree-ssa-dce.c +++ b/gcc/tree-ssa-dce.c @@ -965,6 +965,13 @@ propagate_necessity (struct edge_list *el) mark_aliased_reaching_defs_necessary (stmt, op); } } + else if (gimple_code (stmt) == GIMPLE_TRANSACTION) + { + /* The beginning of a transaction is a memory barrier. */ + /* ??? If we were really cool, we'd only be a barrier + for the memories touched within the transaction. */ + mark_all_reaching_defs_necessary (stmt); + } else gcc_unreachable (); |