GCC Middle and Back End API Reference
|
Data Fields | |
struct tm_region * | next |
struct tm_region * | inner |
struct tm_region * | outer |
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 |
Collect region information for each transaction.
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().