GCC Middle and Back End API Reference
|
#include <ipa-prop.h>
Public Member Functions | |
ipa_argagg_value_list ()=delete | |
ipa_argagg_value_list (const vec< ipa_argagg_value, va_gc > *values) | |
ipa_argagg_value_list (const vec< ipa_argagg_value > *values) | |
ipa_argagg_value_list (const ipa_auto_call_arg_values *aavals) | |
ipa_argagg_value_list (const ipa_call_arg_values *gavals) | |
ipa_argagg_value_list (const ipcp_transformation *tinfo) | |
tree | get_value (int index, unsigned unit_offset, bool by_ref) const |
tree | get_value (int index, unsigned unit_offset) const |
const ipa_argagg_value * | get_elt (int index, unsigned unit_offset) const |
const ipa_argagg_value * | get_elt_for_index (int index) const |
bool | value_for_index_p (int index) const |
bool | superset_of_p (const ipa_argagg_value_list &other) const |
void | push_adjusted_values (unsigned src_index, unsigned dest_index, unsigned unit_delta, vec< ipa_argagg_value > *res) const |
void | dump (FILE *f) |
void DEBUG_FUNCTION | debug () |
Data Fields | |
array_slice< const ipa_argagg_value > | m_elts |
A view into a sorted list of aggregate values in a particular context, be it a call or the aggregate constants that a node is specialized for. The actual data is stored in the vector this has been constructed from.
|
delete |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
void ipa_argagg_value_list::debug | ( | ) |
Dump the contents of the list to stderr.
References dump().
void ipa_argagg_value_list::dump | ( | FILE * | f | ) |
Dump the contents of the list to FILE.
References m_elts, and print_generic_expr().
Referenced by create_specialized_node(), debug(), and ipcp_transform_function().
const ipa_argagg_value * ipa_argagg_value_list::get_elt | ( | int | index, |
unsigned | unit_offset ) const |
Return the item describing a constant stored for INDEX at UNIT_OFFSET or NULL if there is no such constant.
References array_slice< T >::begin(), array_slice< T >::end(), gcc_assert, ipa_argagg_value::index, m_elts, NULL, and ipa_argagg_value::unit_offset.
Referenced by get_value(), get_value(), and ipcp_get_aggregate_const().
const ipa_argagg_value * ipa_argagg_value_list::get_elt_for_index | ( | int | index | ) | const |
Return the first item describing a constant stored for parameter with INDEX, regardless of offset or reference, or NULL if there is no such constant.
References array_slice< T >::begin(), array_slice< T >::end(), ipa_argagg_value::index, and m_elts.
Referenced by push_adjusted_values(), and value_for_index_p().
tree ipa_argagg_value_list::get_value | ( | int | index, |
unsigned | unit_offset ) const |
Return the aggregate constant stored for INDEX at UNIT_OFFSET, not performing any check of whether value is passed by reference, or NULL_TREE if there is no such constant.
References get_elt(), NULL_TREE, and ipa_argagg_value::value.
Return the aggregate constant stored for INDEX at UNIT_OFFSET, if it is passed by reference or not according to BY_REF, or NULL_TREE if there is no such constant.
References ipa_argagg_value::by_ref, get_elt(), NULL_TREE, and ipa_argagg_value::value.
Referenced by ipcp_modif_dom_walker::before_dom_children(), cgraph_edge_brings_value_p(), evaluate_conditions_for_known_args(), ipa_agg_value_from_jfunc(), ipa_get_indirect_edge_target_1(), ipcp_val_agg_replacement_ok_p(), and push_agg_values_for_index_from_edge().
void ipa_argagg_value_list::push_adjusted_values | ( | unsigned | src_index, |
unsigned | dest_index, | ||
unsigned | unit_delta, | ||
vec< ipa_argagg_value > * | res ) const |
Push all items in this list that describe parameter SRC_INDEX into RES as ones describing DST_INDEX while subtracting UNIT_DELTA from their unit offsets but skip those which would end up with a negative offset.
References ipa_argagg_value::by_ref, array_slice< T >::end(), gcc_assert, gcc_checking_assert, get_elt_for_index(), ipa_argagg_value::index, ipa_argagg_value::killed, m_elts, ipa_argagg_value::unit_offset, and ipa_argagg_value::value.
Referenced by push_agg_values_for_index_from_edge().
bool ipa_argagg_value_list::superset_of_p | ( | const ipa_argagg_value_list & | other | ) | const |
Return true if all elements present in OTHER are also present in this list.
References i, m_elts, array_slice< T >::size(), and values_equal_for_ipcp_p().
Referenced by cgraph_edge_brings_all_agg_vals_for_node().
|
inline |
References get_elt_for_index().
Referenced by ipa_cached_call_context::duplicate_from().
array_slice<const ipa_argagg_value> ipa_argagg_value_list::m_elts |
Referenced by dump(), get_elt(), get_elt_for_index(), push_adjusted_values(), push_agg_values_from_edge(), and superset_of_p().