GCC Middle and Back End API Reference
tm_region Struct Reference
Collaboration diagram for tm_region:

Data Fields

struct tm_regionnext
struct tm_regioninner
struct tm_regionouter
gimple transaction_stmt
bool original_transaction_was_outer
tree tm_state
basic_block entry_block
basic_block restart_block
bitmap exit_blocks
bitmap irr_blocks

Detailed Description

Collect region information for each transaction.


Field Documentation

basic_block tm_region::entry_block

The entry block to this region. This will always be the first block of the body of the transaction.

Referenced by execute_lower_tm(), expand_transaction(), and gate_tm_memopt().

bitmap tm_region::exit_blocks

The set of all blocks that end the region; NULL if only EXIT_BLOCK. These blocks are still a part of the region (i.e., the border is inclusive). Note that this set is only complete for paths in the CFG starting at ENTRY_BLOCK, and that there is no exit block recorded for the edge to the "over" label.

Referenced by dump_tm_memopt_sets(), execute_lower_tm(), gate_tm_memopt(), ipa_tm_create_version(), and tm_memopt_accumulate_memops().

struct tm_region* tm_region::inner

Link to the next inner transaction.

Referenced by execute_lower_tm().

bitmap tm_region::irr_blocks

The set of all blocks that have an TM_IRREVOCABLE call.

Referenced by execute_lower_tm().

struct tm_region* tm_region::next

Link to the next unnested transaction.

Referenced by execute_lower_tm(), expand_block_edges(), and gate_tm_memopt().

bool tm_region::original_transaction_was_outer

After TM_MARK expands the GIMPLE_TRANSACTION into a call to BUILT_IN_TM_START, this field is true if the transaction is an outer transaction.

Referenced by execute_lower_tm(), and get_tm_region_blocks().

struct tm_region* tm_region::outer

Link to the next outer transaction.

Referenced by execute_lower_tm().

basic_block tm_region::restart_block

The first block after an expanded call to _ITM_beginTransaction.

Referenced by expand_transaction().

tree tm_region::tm_state

Return value from BUILT_IN_TM_START.

Referenced by execute_lower_tm(), and get_tm_region_blocks().

gimple tm_region::transaction_stmt

The GIMPLE_TRANSACTION statement beginning this transaction. After TM_MARK, this gets replaced by a call to BUILT_IN_TM_START.

Referenced by execute_lower_tm(), get_tm_region_blocks(), and tm_memopt_clear_visited().


The documentation for this struct was generated from the following file: