GCC Middle and Back End API Reference
|
#include <ipa-prop.h>
Public Member Functions | |
ipcp_transformation () | |
~ipcp_transformation () | |
int | get_param_index (const_tree fndecl, const_tree param) const |
void | maybe_create_parm_idx_map (tree fndecl) |
template<typename pred_function > | |
void | remove_argaggs_if (pred_function &&predicate) |
Data Fields | |
vec< ipa_argagg_value, va_gc > * | m_agg_values |
vec< ipa_vr, va_gc > * | m_vr |
vec< ipa_uid_to_idx_map_elt, va_gc > * | m_uid_to_idx |
Structure holding information for the transformation phase of IPA-CP.
|
inline |
|
inline |
References m_agg_values, m_vr, and vec_free().
int ipcp_transformation::get_param_index | ( | const_tree | fndecl, |
const_tree | param ) const |
Given PARAM which must be a parameter of function FNDECL described by THIS, return its index in the DECL_ARGUMENTS chain, using a pre-computed DECL_UID-sorted vector if available (which is pre-computed only if there are many parameters). Can return -1 if param is static chain not represented among DECL_ARGUMENTS.
References DECL_ARGUMENTS, DECL_CHAIN, DECL_STATIC_CHAIN, DECL_UID, gcc_assert, ggc_alloc(), ipa_uid_to_idx_map_elt::index, m_uid_to_idx, TREE_CODE, and ipa_uid_to_idx_map_elt::uid.
Assuming THIS describes FNDECL and it has sufficiently many parameters to justify the overhead, create a DECL_UID-sorted vector to speed up mapping from parameters to their indices in DECL_ARGUMENTS chain.
References compare_uids(), count_formal_params(), DECL_ARGUMENTS, DECL_CHAIN, DECL_UID, ipa_uid_to_idx_map_elt::index, m_uid_to_idx, NULL, ipa_uid_to_idx_map_elt::uid, and vec_safe_reserve().
|
inline |
References ggc_alloc(), ggc_free(), i, m_agg_values, NULL, and vec_safe_length().
vec<ipa_argagg_value, va_gc>* ipcp_transformation::m_agg_values |
Referenced by ipa_set_node_agg_value_chain(), remove_argaggs_if(), and ~ipcp_transformation().
vec<ipa_uid_to_idx_map_elt, va_gc>* ipcp_transformation::m_uid_to_idx |
Referenced by get_param_index(), and maybe_create_parm_idx_map().
Referenced by ~ipcp_transformation().