GCC Middle and Back End API Reference
|
Data Structures | |
struct | key |
Public Types | |
typedef key * | compare_type |
typedef Type * | value_type |
Static Public Member Functions | |
static hashval_t | hash (const cselib_val *) |
static bool | equal (const cselib_val *, const key *) |
static hashval_t | hash (const value_type &) |
static bool | equal (const value_type &existing, const compare_type &candidate) |
static void | mark_deleted (Type *&) |
static void | mark_empty (Type *&) |
static bool | is_deleted (Type *) |
static bool | is_empty (Type *) |
static void | remove (Type &) |
Static Public Attributes | |
static const bool | empty_zero_p = true |
There are three ways in which cselib can look up an rtx: - for a REG, the reg_values table (which is indexed by regno) is used - for a MEM, we recursively look up its address and then follow the addr_list of that value - for everything else, we compute a hash value and go through the hash table. Since different rtx's can still have the same hash value, this involves walking the table entries for a given value and comparing the locations of the entries with the rtx we are looking up.
|
inlinestatic |
The equality test for our hash table. The first argument V is a table element (i.e. a cselib_val), while the second arg X is an rtx. We know that all callers of htab_find_slot_with_hash will wrap CONST_INTs into a CONST of an appropriate mode.
References autoinc_split(), cselib_current_insn, DEBUG_INSN_P, GET_CODE, GET_MODE, ggc_alloc(), elt_loc_list::loc, cselib_val::locs, elt_loc_list::next, NULL, NULL_RTX, promote_debug_loc(), rtx_equal_for_cselib_1(), elt_loc_list::setting_insn, SP_DERIVED_VALUE_P, and cselib_val::val_rtx.
|
inlinestaticinherited |
References candidate(), and ggc_alloc().
|
inlinestatic |
The hash function for our hash table. The value is always computed with cselib_hash_rtx when adding an element; this function just extracts the hash value from a cselib_val structure.
References cselib_val::hash.
|
inlinestaticinherited |
References candidate(), and ggc_alloc().
References ggc_alloc().
References NULL.
References ggc_alloc().
References NULL.
Remove doing nothing.