aboutsummaryrefslogtreecommitdiff
path: root/gcc/trans-mem.c
diff options
context:
space:
mode:
authorAldy Hernandez <aldyh@redhat.com>2012-05-21 18:02:17 +0000
committerAldy Hernandez <aldyh@redhat.com>2012-05-21 18:02:17 +0000
commit97b6a9bebbf3c45fa56acf4a9e35fded0a2cec2a (patch)
tree7d77d20baeae4084708dde20bb2b440ed8aa0bf1 /gcc/trans-mem.c
parent32ec7d9f880743d814b81efff4499163bb7c157f (diff)
* gimple.h (gimple_set_in_transaction): Remove.
(gimple_in_transaction): Look in BB instead. (gimple_statement_base): Remove in_transaction field. * basic-block.h (enum bb_flags): Add BB_IN_TRANSACTION. * trans-mem.c (compute_transaction_bits): Place transaction bit information into basic blocks. git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@187729 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/trans-mem.c')
-rw-r--r--gcc/trans-mem.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index 51dd7fe13ed..8887b9afee6 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -2451,13 +2451,15 @@ compute_transaction_bits (void)
struct tm_region *region;
VEC (basic_block, heap) *queue;
unsigned int i;
- gimple_stmt_iterator gsi;
basic_block bb;
/* ?? Perhaps we need to abstract gate_tm_init further, because we
certainly don't need it to calculate CDI_DOMINATOR info. */
gate_tm_init ();
+ FOR_EACH_BB (bb)
+ bb->flags &= ~BB_IN_TRANSACTION;
+
for (region = all_tm_regions; region; region = region->next)
{
queue = get_tm_region_blocks (region->entry_block,
@@ -2466,11 +2468,7 @@ compute_transaction_bits (void)
NULL,
/*stop_at_irr_p=*/true);
for (i = 0; VEC_iterate (basic_block, queue, i, bb); ++i)
- for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
- {
- gimple stmt = gsi_stmt (gsi);
- gimple_set_in_transaction (stmt, true);
- }
+ bb->flags |= BB_IN_TRANSACTION;
VEC_free (basic_block, heap, queue);
}