GCC Middle and Back End API Reference
|
Data Fields | |
basic_block | test_bb |
basic_block | then_bb |
basic_block | else_bb |
basic_block | join_bb |
rtx | jump |
rtx | cond |
rtx | cond_earliest |
rtx | insn_a |
rtx | insn_b |
rtx | a |
rtx | b |
rtx | x |
bool | then_else_reversed |
int | branch_cost |
Used by noce_process_if_block to communicate with its subroutines. The subroutines know that A and B may be evaluated freely. They know that X is a register. They should insert new instructions before cond_earliest.
rtx noce_if_info::a |
The SET_SRC of INSN_A and INSN_B.
Referenced by end_ifcvt_sequence(), and noce_try_addcc().
rtx noce_if_info::b |
Referenced by end_ifcvt_sequence(), and noce_try_addcc().
int noce_if_info::branch_cost |
Estimated cost of the particular branch instruction.
Referenced by noce_try_addcc().
rtx noce_if_info::cond |
The jump condition.
Referenced by cond_exec_find_if_block(), end_ifcvt_sequence(), and noce_try_addcc().
rtx noce_if_info::cond_earliest |
New insns should be inserted before this one.
Referenced by cond_exec_find_if_block().
basic_block noce_if_info::else_bb |
Referenced by cond_exec_find_if_block().
rtx noce_if_info::insn_a |
Insns in the THEN and ELSE block. There is always just this one insns in those blocks. The insns are single_set insns. If there was no ELSE block, INSN_B is the last insn before COND_EARLIEST, or NULL_RTX. In the former case, the insn operands are still valid, as if INSN_B was moved down below the jump.
Referenced by noce_try_addcc().
rtx noce_if_info::insn_b |
basic_block noce_if_info::join_bb |
rtx noce_if_info::jump |
The jump that ends TEST_BB.
Referenced by cond_exec_find_if_block(), end_ifcvt_sequence(), and noce_try_addcc().
basic_block noce_if_info::test_bb |
The basic blocks that make up the IF-THEN-{ELSE-,}JOIN block.
basic_block noce_if_info::then_bb |
Referenced by cond_exec_find_if_block().
bool noce_if_info::then_else_reversed |
True if this if block is not canonical. In the canonical form of if blocks, the THEN_BB is the block reached via the fallthru edge from TEST_BB. For the noce transformations, we allow the symmetric form as well.
rtx noce_if_info::x |
The SET_DEST of INSN_A.
Referenced by end_ifcvt_sequence(), noce_try_addcc(), and noce_try_store_flag_constants().