GCC Middle and Back End API Reference
|
Data Fields | |
rtx | inc_insn |
rtx | mem_insn |
rtx * | mem_loc |
rtx | mem_reg0 |
rtx | mem_index |
HOST_WIDE_INT | mem_constant |
HOST_WIDE_INT | inc_constant |
rtx | inc_input |
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.
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 |
Referenced by debug_ds(), ds_get_max_dep_weak(), and ds_get_speculation_types().
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.