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

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

Detailed Description

   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.  

Field Documentation

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
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().

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