Commit 83e1a7f0 by Aldy Hernandez Committed by Aldy Hernandez

gimple.h (gimple_set_in_transaction): Remove.

        * 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.

From-SVN: r187729
parent 0ac65d04
2012-05-21 Aldy Hernandez <aldyh@redhat.com>
* 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.
2012-05-21 Andreas Schwab <schwab@linux-m68k.org> 2012-05-21 Andreas Schwab <schwab@linux-m68k.org>
* expr.c (get_def_for_expr_class): Define only if * expr.c (get_def_for_expr_class): Define only if
......
...@@ -263,7 +263,12 @@ enum bb_flags ...@@ -263,7 +263,12 @@ enum bb_flags
BB_MODIFIED = 1 << 12, BB_MODIFIED = 1 << 12,
/* A general visited flag for passes to use. */ /* A general visited flag for passes to use. */
BB_VISITED = 1 << 13 BB_VISITED = 1 << 13,
/* Set on blocks that are in a transaction. This is calculated on
demand, and is available after calling
compute_transaction_bits(). */
BB_IN_TRANSACTION = 1 << 14
}; };
/* Dummy flag for convenience in the hot/cold partitioning code. */ /* Dummy flag for convenience in the hot/cold partitioning code. */
......
...@@ -179,11 +179,6 @@ struct GTY(()) gimple_statement_base { ...@@ -179,11 +179,6 @@ struct GTY(()) gimple_statement_base {
/* Nonzero if this statement contains volatile operands. */ /* Nonzero if this statement contains volatile operands. */
unsigned has_volatile_ops : 1; unsigned has_volatile_ops : 1;
/* Nonzero if this statement appears inside a transaction. This bit
is calculated on de-mand and has relevant information only after
it has been calculated with compute_transaction_bits. */
unsigned in_transaction : 1;
/* The SUBCODE field can be used for tuple-specific flags for tuples /* The SUBCODE field can be used for tuple-specific flags for tuples
that do not require subcodes. Note that SUBCODE should be at that do not require subcodes. Note that SUBCODE should be at
least as wide as tree codes, as several tuples store tree codes least as wide as tree codes, as several tuples store tree codes
...@@ -1598,15 +1593,7 @@ gimple_set_has_volatile_ops (gimple stmt, bool volatilep) ...@@ -1598,15 +1593,7 @@ gimple_set_has_volatile_ops (gimple stmt, bool volatilep)
static inline bool static inline bool
gimple_in_transaction (gimple stmt) gimple_in_transaction (gimple stmt)
{ {
return stmt->gsbase.in_transaction; return gimple_bb (stmt)->flags & BB_IN_TRANSACTION;
}
/* Set the IN_TRANSACTION flag to TRANSACTIONP. */
static inline void
gimple_set_in_transaction (gimple stmt, bool transactionp)
{
stmt->gsbase.in_transaction = (unsigned) transactionp;
} }
/* Return true if statement STMT may access memory. */ /* Return true if statement STMT may access memory. */
......
...@@ -2451,13 +2451,15 @@ compute_transaction_bits (void) ...@@ -2451,13 +2451,15 @@ compute_transaction_bits (void)
struct tm_region *region; struct tm_region *region;
VEC (basic_block, heap) *queue; VEC (basic_block, heap) *queue;
unsigned int i; unsigned int i;
gimple_stmt_iterator gsi;
basic_block bb; basic_block bb;
/* ?? Perhaps we need to abstract gate_tm_init further, because we /* ?? Perhaps we need to abstract gate_tm_init further, because we
certainly don't need it to calculate CDI_DOMINATOR info. */ certainly don't need it to calculate CDI_DOMINATOR info. */
gate_tm_init (); gate_tm_init ();
FOR_EACH_BB (bb)
bb->flags &= ~BB_IN_TRANSACTION;
for (region = all_tm_regions; region; region = region->next) for (region = all_tm_regions; region; region = region->next)
{ {
queue = get_tm_region_blocks (region->entry_block, queue = get_tm_region_blocks (region->entry_block,
...@@ -2466,11 +2468,7 @@ compute_transaction_bits (void) ...@@ -2466,11 +2468,7 @@ compute_transaction_bits (void)
NULL, NULL,
/*stop_at_irr_p=*/true); /*stop_at_irr_p=*/true);
for (i = 0; VEC_iterate (basic_block, queue, i, bb); ++i) for (i = 0; VEC_iterate (basic_block, queue, i, bb); ++i)
for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi)) bb->flags |= BB_IN_TRANSACTION;
{
gimple stmt = gsi_stmt (gsi);
gimple_set_in_transaction (stmt, true);
}
VEC_free (basic_block, heap, queue); VEC_free (basic_block, heap, queue);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment