GCC Middle and Back End API Reference
|
#include <ipa-cp.h>
Public Member Functions | |
void | add_source (cgraph_edge *cs, ipcp_value *src_val, int src_idx, HOST_WIDE_INT offset) |
bool | same_scc (const ipcp_value< valtype > *o) |
bool | self_recursion_generated_p () |
Data Fields | |
valtype | value |
ipcp_value_source< valtype > * | sources = nullptr |
ipcp_value * | next = nullptr |
ipcp_value * | scc_next = nullptr |
ipcp_value * | topo_next = nullptr |
cgraph_node * | spec_node = nullptr |
int | dfs = 0 |
int | low_link = 0 |
int | scc_no = 0 |
unsigned | self_recursion_generated_level = 0 |
bool | on_stack = false |
sreal | local_time_benefit = 0 |
sreal | prop_time_benefit = 0 |
int | local_size_cost = 0 |
int | prop_size_cost = 0 |
Interprocedural constant propagation Copyright (C) 2024 Free Software Foundation, Inc. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
Describes one particular value stored in struct ipcp_lattice.
void ipcp_value< valtype >::add_source | ( | cgraph_edge * | cs, |
ipcp_value< valtype > * | src_val, | ||
int | src_idx, | ||
HOST_WIDE_INT | offset ) |
Add a new value source to the value represented by THIS, marking that a value comes from edge CS and (if the underlying jump function is a pass-through or an ancestor one) from a caller value SRC_VAL of a caller parameter described by SRC_INDEX. OFFSET is negative if the source was the scalar value of the parameter itself or the offset within an aggregate.
References ipcp_value_source< valtype >::cs, ipcp_value_source< valtype >::index, ipcp_sources_pool, ipcp_value_source< valtype >::next, ipcp_value_source< valtype >::offset, offset, sources, and ipcp_value_source< valtype >::val.
Referenced by ipcp_lattice< valtype >::add_value().
|
inline |
References ipcp_value< valtype >::scc_no.
Referenced by value_topo_info< valtype >::propagate_effects().
|
inline |
Return true, if a this value has been generated for a self-recursive call as a result of an arithmetic pass-through jump-function acting on a value in the same lattice function.
References ipcp_value< valtype >::self_recursion_generated_level.
Referenced by decide_about_value(), decide_whether_version_node(), ipcp_lattice< valtype >::print(), value_topo_info< valtype >::propagate_effects(), and propagate_vals_across_arith_jfunc().
int ipcp_value< valtype >::dfs = 0 |
Referenced by value_topo_info< valtype >::add_val().
|
inherited |
|
inherited |
int ipcp_value< valtype >::low_link = 0 |
Referenced by value_topo_info< valtype >::add_val().
ipcp_value* ipcp_value< valtype >::next = nullptr |
Referenced by add_all_node_vals_to_toposort(), ipcp_lattice< valtype >::add_value(), decide_whether_version_node(), estimate_local_effects(), merge_aggregate_lattices(), ipcp_lattice< valtype >::print(), propagate_context_across_jump_function(), propagate_vals_across_ancestor(), and propagate_vals_across_arith_jfunc().
bool ipcp_value< valtype >::on_stack = false |
Referenced by value_topo_info< valtype >::add_val().
|
inherited |
|
inherited |
ipcp_value* ipcp_value< valtype >::scc_next = nullptr |
Referenced by value_topo_info< valtype >::add_val(), and value_topo_info< valtype >::propagate_effects().
int ipcp_value< valtype >::scc_no = 0 |
unsigned ipcp_value< valtype >::self_recursion_generated_level = 0 |
ipcp_value_source<valtype>* ipcp_value< valtype >::sources = nullptr |
Referenced by value_topo_info< valtype >::add_val(), ipcp_lattice< valtype >::add_value(), gather_edges_for_value(), get_info_about_necessary_edges(), perhaps_add_new_callers(), ipcp_lattice< valtype >::print(), value_topo_info< valtype >::propagate_effects(), and propagate_vals_across_arith_jfunc().
cgraph_node* ipcp_value< valtype >::spec_node = nullptr |
Referenced by decide_about_value(), and perhaps_add_new_callers().
ipcp_value* ipcp_value< valtype >::topo_next = nullptr |
Referenced by value_topo_info< valtype >::add_val(), and value_topo_info< valtype >::propagate_effects().
valtype ipcp_value< valtype >::value |
Referenced by ipcp_lattice< valtype >::add_value(), allocate_and_init_ipcp_value(), allocate_and_init_ipcp_value(), cgraph_edge_brings_value_p(), cgraph_edge_brings_value_p(), copy_known_vectors_add_val(), copy_known_vectors_add_val(), decide_about_value(), decide_whether_version_node(), estimate_local_effects(), gather_context_independent_values(), get_val_across_arith_op(), ipa_agg_value_from_jfunc(), ipcp_lattice< valtype >::print(), propagate_context_across_jump_function(), and propagate_vals_across_ancestor().