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

Data Fields

rtx inc_insn
rtx mem_insn
rtxmem_loc
rtx mem_reg0
rtx mem_index
HOST_WIDE_INT mem_constant
HOST_WIDE_INT inc_constant
rtx inc_input

Detailed Description

   The following code discovers opportunities to switch a memory reference
   and an increment by modifying the address.  We ensure that this is done
   only for dependencies that are only used to show a single register
   dependence (using DEP_NONREG and DEP_MULTIPLE), and so that every memory
   instruction involved is subject to only one dep that can cause a pattern
   change.

   When we discover a suitable dependency, we fill in the dep_replacement
   structure to show how to modify the memory reference.  
   Holds information about a pair of memory reference and register increment
   insns which depend on each other, but could possibly be interchanged.  

Field Documentation

HOST_WIDE_INT mem_inc_info::inc_constant
     The constant added in the increment insn.  Negated if the increment is
     after the memory address.  
rtx mem_inc_info::inc_input
     The source register used in the increment.  May be different from mem_reg0
     if the increment occurs before the memory address.  

Referenced by ds_get_max_dep_weak(), and ds_max_merge().

rtx mem_inc_info::inc_insn

Referenced by debug_ds(), and ds_max_merge().

HOST_WIDE_INT mem_inc_info::mem_constant
     The constant offset used in the memory address.  
rtx mem_inc_info::mem_index
     Any kind of index that is added to that register.  
rtx mem_inc_info::mem_insn
rtx* mem_inc_info::mem_loc
rtx mem_inc_info::mem_reg0
     A register occurring in the memory address for which we wish to break
     the dependence.  This must be identical to the destination register of
     the increment.  

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