GCC Middle and Back End API Reference
|
Go to the source code of this file.
Data Structures | |
struct | ipa_ref |
struct | ipa_ref_list |
Typedefs | |
typedef union symtab_node_def * | symtab_node |
typedef union symtab_node_def * | const_symtab_node |
typedef struct ipa_ref | ipa_ref_t |
typedef struct ipa_ref * | ipa_ref_ptr |
Enumerations | |
enum | ipa_ref_use { IPA_REF_LOAD, IPA_REF_STORE, IPA_REF_ADDR, IPA_REF_ALIAS } |
Functions | |
struct ipa_ref * | ipa_record_reference (symtab_node, symtab_node, enum ipa_ref_use, gimple) |
struct ipa_ref * | ipa_maybe_record_reference (symtab_node, tree, enum ipa_ref_use, gimple) |
void | ipa_remove_reference (struct ipa_ref *) |
void | ipa_remove_all_references (struct ipa_ref_list *) |
void | ipa_remove_all_referring (struct ipa_ref_list *) |
void | ipa_dump_references (FILE *, struct ipa_ref_list *) |
void | ipa_dump_referring (FILE *, struct ipa_ref_list *) |
void | ipa_clone_references (symtab_node, struct ipa_ref_list *) |
void | ipa_clone_referring (symtab_node, struct ipa_ref_list *) |
struct ipa_ref * | ipa_clone_ref (struct ipa_ref *, symtab_node, gimple) |
bool | ipa_ref_cannot_lead_to_return (struct ipa_ref *) |
bool | ipa_ref_has_aliases_p (struct ipa_ref_list *) |
struct ipa_ref * | ipa_find_reference (symtab_node, symtab_node, gimple, unsigned int) |
void | ipa_remove_stmt_references (symtab_node, gimple) |
void | ipa_clear_stmts_in_references (symtab_node) |
typedef union symtab_node_def* const_symtab_node |
typedef struct ipa_ref* ipa_ref_ptr |
typedef union symtab_node_def* symtab_node |
enum ipa_ref_use |
void ipa_clear_stmts_in_references | ( | symtab_node | ) |
|
read |
Clone reference REF to DEST_NODE and set its stmt to STMT.
References ipa_record_reference(), ipa_ref::lto_stmt_uid, ipa_ref::referred, and ipa_ref::speculative.
Referenced by copy_bb().
void ipa_clone_references | ( | symtab_node | dest_node, |
struct ipa_ref_list * | src | ||
) |
Clone all references from SRC to DEST_NODE or DEST_VARPOOL_NODE.
References ipa_record_reference(), ipa_ref::lto_stmt_uid, ipa_ref::referred, ipa_ref::speculative, and ipa_ref::stmt.
Referenced by cgraph_clone_node().
void ipa_clone_referring | ( | symtab_node | dest_node, |
struct ipa_ref_list * | src | ||
) |
Clone all referring from SRC to DEST_NODE or DEST_VARPOOL_NODE.
References ipa_record_reference(), ipa_ref::lto_stmt_uid, ipa_ref::referring, ipa_ref::speculative, and ipa_ref::stmt.
Referenced by lto_cgraph_replace_node(), and lto_varpool_replace_node().
void ipa_dump_references | ( | FILE * | , |
struct ipa_ref_list * | |||
) |
void ipa_dump_referring | ( | FILE * | , |
struct ipa_ref_list * | |||
) |
|
read |
Find the structure describing a reference in REFERRING_NODE to REFERRED_NODE and associated with statement STMT.
References ipa_ref::lto_stmt_uid, ipa_ref::referred, ipa_ref::speculative, and ipa_ref::stmt.
Referenced by ipcp_discover_new_direct_edges(), propagate_controlled_uses(), and remove_described_reference().
|
read |
If VAL is a reference to a function or a variable, add a reference from REFERRING_NODE to the corresponding symbol table node. USE_TYPE specify type of the use and STMT the statement (if it exists). Return the new reference or NULL if none was created.
References get_base_var(), ipa_record_reference(), ipa_ref::referred, and symtab_get_node().
Referenced by cgraph_create_virtual_clone(), and create_specialized_node().
|
read |
Return ipa reference from REFERING_NODE or REFERING_VARPOOL_NODE to REFERED_NODE or REFERED_VARPOOL_NODE. USE_TYPE specify type of the use and STMT the statement (if it exists).
References IPA_REF_ALIAS, ipa_ref_referred_ref_list(), ipa_ref::lto_stmt_uid, ipa_ref_list::references, ipa_ref::referred, ipa_ref::referred_index, ipa_ref::referring, ipa_ref_list::referring, ipa_ref::speculative, ipa_ref::stmt, vec_safe_address(), vec_safe_grow(), and vec_safe_length().
Referenced by build_cgraph_edges(), cgraph_turn_edge_to_speculative(), gen_emutls_addr(), input_ref(), ipa_clone_ref(), ipa_clone_references(), ipa_clone_referring(), ipa_maybe_record_reference(), mark_address(), mark_load(), mark_store(), record_eh_tables(), record_reference(), record_type_list(), and symtab_resolve_alias().
bool ipa_ref_cannot_lead_to_return | ( | struct ipa_ref * | ) |
bool ipa_ref_has_aliases_p | ( | struct ipa_ref_list * | ) |
void ipa_remove_all_references | ( | struct ipa_ref_list * | ) |
void ipa_remove_all_referring | ( | struct ipa_ref_list * | ) |
void ipa_remove_reference | ( | struct ipa_ref * | ) |
void ipa_remove_stmt_references | ( | symtab_node | , |
gimple | |||
) |