#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 | 
References m_agg_values, m_uid_to_idx, and m_vr.
| 
 | 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(), ipcp_get_aggregate_const(), ipcp_transform_function(), ipcp_transformation(), 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(), ipcp_transformation(), 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_transformation(), ipcp_update_vr(), read_ipcp_transformation_info(), useful_ipcp_transformation_info_p(), write_ipcp_transformation_info(), and ~ipcp_transformation().