GCC Middle and Back End API Reference
|
Data Fields | |
rtx | rtl |
rtx | src |
struct table_elt * | src_elt |
unsigned | src_hash |
unsigned | dest_hash |
rtx | inner_dest |
enum machine_mode | mode: MACHINE_MODE_BITSIZE |
unsigned int | src_in_memory: 1 |
unsigned int | src_volatile: 1 |
unsigned int | is_fake_set: 1 |
unsigned | src_const_hash |
rtx | src_const |
struct table_elt * | src_const_elt |
struct table_elt * | dest_addr_elt |
CSE processing for one instruction. Most "true" common subexpressions are mostly optimized away in GIMPLE, but the few that "leak through" are cleaned up by cse_insn, and complex addressing modes are often formed here. The main function is cse_insn, and between here and that function a couple of helper functions is defined to keep the size of cse_insn within reasonable proportions. Data is shared between the main and helper functions via STRUCT SET, that contains all data related for every set in the instruction that is being processed. Note that cse_main processes all sets in the instruction. Most passes in GCC only process simple SET insns or single_set insns, but CSE processes insns with multiple sets as well.
Data on one SET contained in the instruction.
struct table_elt* set::dest_addr_elt |
unsigned set::dest_hash |
rtx set::inner_dest |
unsigned int set::is_fake_set |
Referenced by add_to_set().
enum machine_mode set::mode |
rtx set::rtl |
Referenced by add_to_set(), and canonicalize_insn().
rtx set::src |
Referenced by bypass_block(), canonicalize_insn(), cprop_insn(), find_avail_set(), find_bypass_set(), and find_sets_in_insn().
rtx set::src_const |
struct table_elt* set::src_const_elt |
unsigned set::src_const_hash |
struct table_elt* set::src_elt |
unsigned set::src_hash |
unsigned int set::src_in_memory |
unsigned int set::src_volatile |