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, ipa_uid_to_idx_map_elt::index, m_uid_to_idx, TREE_CODE, and ipa_uid_to_idx_map_elt::uid.
Referenced by ipcp_get_aggregate_const(), and ipcp_get_parm_bits().
void ipcp_transformation::maybe_create_parm_idx_map | ( | tree | fndecl | ) |
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().
Referenced by ipcp_transform_function().
|
inline |
References ggc_free(), i, m_agg_values, NULL, and vec_safe_length().
Referenced by ipcp_transform_function().
vec<ipa_argagg_value, va_gc>* ipcp_transformation::m_agg_values |
Referenced by adjust_agg_replacement_values(), cgraph_edge_brings_all_agg_vals_for_node(), ipcp_transformation_t::duplicate(), ipa_set_node_agg_value_chain(), ipcp_get_aggregate_const(), ipcp_transform_function(), read_ipcp_transformation_info(), remove_argaggs_if(), useful_ipcp_transformation_info_p(), write_ipcp_transformation_info(), 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_t::duplicate(), ipa_value_range_from_jfunc(), ipcp_get_parm_bits(), ipcp_store_vr_results(), ipcp_transform_function(), ipcp_update_vr(), read_ipcp_transformation_info(), useful_ipcp_transformation_info_p(), write_ipcp_transformation_info(), and ~ipcp_transformation().