#include <stdint.h>#include <alloca.h>#include "be_symtab.h"#include "ipa_cg.h"#include "ipa_option.h"#include "ipa_preopt.h"#include "ipa_summary.h"#include "ipa_section_annot.h"#include "ipa_section_main.h"#include "ipa_section_prop.h"#include "ipaa.h"#include "config_ipa.h"#include "ipa_lno_util.h"#include "ipa_cost.h"

Go to the source code of this file.
| #define __STDC_LIMIT_MACROS |
Definition at line 59 of file ipa_section_prop.cxx.
| static BOOL Expr_has_only_formals | ( | SUMMARY_EXPR * | expr, | |
| mBOOL * | formals_used | |||
| ) | [static] |
Definition at line 856 of file ipa_section_prop.cxx.
References FALSE, SUMMARY_EXPR::Get_kid(), SUMMARY_EXPR::Get_node_index(), SUMMARY_EXPR::Has_const_operand(), INT32, SUMMARY_EXPR::Is_expr_expr(), SUMMARY_EXPR::Is_expr_unknown(), SUMMARY_EXPR::Is_expr_value(), TRUE, and Value_has_only_formals().
Referenced by Value_has_only_formals().
Definition at line 554 of file ipa_section_prop.cxx.
References count, CXX_NEW, DYN_ARRAY< T >::Force_Alloc_array(), formal, SUMMARY_PROCEDURE::Get_array_section_count(), SUMMARY_PROCEDURE::Get_array_section_index(), SUMMARY_PROCEDURE::Get_formal_index(), SUMMARY_FORMAL::Get_ty(), SUMMARY_PROCEDURE::Has_messy_regions(), IPA_NODE::Has_Propagated_Const(), INT, IPA_Enable_Preopt, IPA_get_cfg_node_array(), IPA_get_formal_array(), IPA_Max_Node_Clones, IPA_Max_Node_Clones_Set, IPA_Preoptimize(), ipa_proc, KIND_ARRAY, KIND_POINTER, NULL, IPA_NODE::Num_Formals(), IPA_NODE::Section_Annot(), IPA_NODE_SECTION_INFO::Set_cfg_node(), IPA_NODE_SECTION_INFO::Set_formals(), IPA_NODE::Set_Section_Annot(), DYN_ARRAY< T >::Setidx(), IPA_NODE::Summary_Proc(), TY_kind, TY_pointed, Update_Execution_Cost(), and update_mod_const_sections().
Referenced by IPA_ARRAY_DF_FLOW::InitializeNode().
| static BOOL Is_constant_global | ( | const IPA_NODE * | n, | |
| INT64 * | val, | |||
| ST_IDX | base_st_idx, | |||
| INT64 | offset, | |||
| TYPE_ID | mtype | |||
| ) | [static] |
Definition at line 150 of file ipa_section_prop.cxx.
References FALSE, GLOBAL_ANNOT::Find(), SUMMARY_VALUE::Get_mtype(), IPA_NODE::Global_Annot(), GLOBAL_ANNOT::Index(), Is_constant_val(), ST_is_const_initialized_scalar(), ST_ptr(), Targ_Is_Integral(), TRUE, and GLOBAL_VALUE::Value().
Referenced by Update_term_with_global_constant().
| static BOOL Is_constant_val | ( | SUMMARY_VALUE * | summary_val, | |
| INT64 * | val | |||
| ) | [static] |
Definition at line 131 of file ipa_section_prop.cxx.
References FALSE, SUMMARY_VALUE::Get_const_st_idx(), SUMMARY_VALUE::Get_int_const_value(), SUMMARY_VALUE::Is_const_st(), SUMMARY_VALUE::Is_int_const(), ST_ptr(), ST_tcon, Targ_Is_Integral(), Tcon_Table, and TRUE.
Referenced by Is_constant_global(), and Update_term_with_formal_constant().
| static BOOL Is_formal_modified | ( | const IPA_NODE * | node, | |
| const SUMMARY_FORMAL & | formal | |||
| ) | [static] |
Definition at line 101 of file ipa_section_prop.cxx.
References SUMMARY_FORMAL::Get_position(), INT, IPA_Enable_Simple_Alias, IPAA_NODE_INFO::Is_formal_dmod_elmt(), IPAA_NODE_INFO::Is_formal_imod_elmt(), Is_True, IPA_NODE::Mod_Ref_Info(), and TRUE.
Referenced by update_linex_with_constant_mod().
Definition at line 115 of file ipa_section_prop.cxx.
References IPA_Enable_Simple_Alias, IPAA_NODE_INFO::Is_def_elmt(), Is_True, IPA_NODE::Mod_Ref_Info(), ST_IDX_index(), and TRUE.
Referenced by update_linex_with_constant_mod().
| static LINEX* update_linex_with_constant_mod | ( | IPA_NODE * | node, | |
| LINEX * | linex, | |||
| BOOL * | modified | |||
| ) | [static] |
Definition at line 222 of file ipa_section_prop.cxx.
References Fail_FmtAssertion(), FALSE, formal, TERM::Get_desc(), SUMMARY_PROCEDURE::Get_formal_index(), LINEX::Get_term(), TERM::Get_type(), i, idx, INT, INT32, INT64, ipa_formal, IPA_get_formal_array(), IPA_get_ivar_array(), IPA_get_symbol_array(), ipa_proc, ipa_symbol, Is_formal_modified(), Is_global_modified(), LTKIND_CONST, LTKIND_IV, LTKIND_LINDEX, LTKIND_SUBSCR, mtype, LINEX::Num_terms(), offset, IPA_NODE::Section_Annot(), LINEX::Simplify(), size, ST_base_idx(), ST_ofst, ST_ptr(), IPA_NODE::Summary_Proc(), TYPE_ID, Update_term_with_formal_constant(), and Update_term_with_global_constant().
Referenced by update_loop_info(), and update_projected_region().
Definition at line 279 of file ipa_section_prop.cxx.
References BOOL, LINEX::Copy(), LOOPINFO::Create_linex(), LOOPINFO::Get_lower_linex(), LOOPINFO::Get_step_linex(), LOOPINFO::Get_upper_linex(), IPA_get_term_array(), LOOPINFO::Is_messy_lb(), LOOPINFO::Is_messy_step(), LOOPINFO::Is_messy_ub(), result, and update_linex_with_constant_mod().
Referenced by update_mod_const_sections().
Definition at line 484 of file ipa_section_prop.cxx.
References bcopy(), SUMMARY_PROCEDURE::Get_array_section_count(), SUMMARY_PROCEDURE::Get_array_section_index(), CFG_NODE_INFO::Get_def_count(), CFG_NODE_INFO::Get_def_index(), CFG_NODE_INFO::Get_formal_count(), CFG_NODE_INFO::Get_formal_index(), CFG_NODE_INFO::Get_loop_index(), CFG_NODE_INFO::Get_param_count(), CFG_NODE_INFO::Get_param_index(), CFG_NODE_INFO::Get_use_count(), CFG_NODE_INFO::Get_use_index(), SUMMARY_PROCEDURE::Has_incomplete_array_info(), i, Init_IPA_Print_Arrays(), INT, IPA_get_cfg_node_array(), IPA_get_loopinfo_array(), IPA_get_region_array(), ipa_proc, CFG_NODE_INFO::Is_do_loop(), MEM_POOL_Alloc, NULL, LOOPINFO::Set_Mem_Pool(), IPA_NODE::Summary_Proc(), update_loop_info(), and update_region().
Referenced by init_node_section_annot().
| static void update_projected_region | ( | IPA_NODE * | node, | |
| PROJECTED_REGION * | p | |||
| ) | [static] |
Definition at line 308 of file ipa_section_prop.cxx.
References bcopy(), BOOL, count, PROJECTED_NODE::Create_linex(), CXX_NEW, PROJECTED_REGION::Get_id(), PROJECTED_NODE::Get_lower_linex(), PROJECTED_REGION::Get_num_dims(), PROJECTED_NODE::Get_segment_length_linex(), PROJECTED_NODE::Get_segment_stride_linex(), PROJECTED_NODE::Get_step_linex(), PROJECTED_NODE::Get_upper_linex(), i, info, INT, IPA_get_projected_node_array(), IPA_get_term_array(), IPA_NODE_SECTION_INFO::Mem_Pool(), MEM_POOL_Alloc, parray, IPA_NODE::Section_Annot(), PROJECTED_NODE::Set_lower_linex(), PROJECTED_NODE::Set_Mem_Pool(), PROJECTED_REGION::Set_messy_region(), PROJECTED_REGION::Set_projected_array(), PROJECTED_REGION::Set_projected_node(), PROJECTED_NODE::Set_segment_length_linex(), PROJECTED_NODE::Set_segment_stride_linex(), PROJECTED_NODE::Set_step_linex(), PROJECTED_NODE::Set_upper_linex(), and update_linex_with_constant_mod().
Referenced by update_region().
| static void update_region | ( | IPA_NODE * | node, | |
| REGION_ARRAYS * | r | |||
| ) | [static] |
Definition at line 399 of file ipa_section_prop.cxx.
References bcopy(), BOOL, count, FALSE, REGION_ARRAYS::Get_count(), SUMMARY_SYMBOL::Get_findex(), IPA_NODE_SECTION_INFO::Get_formal_dcl_region(), IPA_NODE_SECTION_INFO::Get_formal_mod_region(), IPA_NODE_SECTION_INFO::Get_formal_ref_region(), REGION_ARRAYS::Get_idx(), SUMMARY_FORMAL::Get_position(), REGION_ARRAYS::Get_sym_id(), IPA_NODE_SECTION_INFO::Global_Array_Region(), GLOBAL_SYMTAB, i, info, INT, INT32, IPA_get_formal_array(), IPA_get_proj_region_array(), IPA_get_symbol_array(), REGION_ARRAYS::Is_def(), SUMMARY_SYMBOL::Is_formal(), REGION_ARRAYS::Is_formal(), is_global(), REGION_ARRAYS::Is_may_def(), REGION_ARRAYS::Is_may_use(), PROJECTED_REGION::Is_messy_region(), REGION_ARRAYS::Is_use(), PROJECTED_REGION::May_Union(), MEM_POOL_Alloc, p, pr, IPA_NODE::Section_Annot(), IPA_NODE_SECTION_INFO::Set_formal_dcl_region(), IPA_NODE_SECTION_INFO::Set_formal_mod_region(), IPA_NODE_SECTION_INFO::Set_formal_ref_region(), PROJECTED_REGION::Set_Mem_Pool(), SUMMARY_SYMBOL::St_idx(), ST_IDX_level(), sym, Trace_IPA_Sections, TRUE, and update_projected_region().
Referenced by update_mod_const_sections().
| static void Update_term_with_formal_constant | ( | const IPA_NODE * | node, | |
| const SUMMARY_FORMAL & | formal, | |||
| TERM * | t | |||
| ) | [static] |
Definition at line 185 of file ipa_section_prop.cxx.
References CONST_DESC, IPA_NODE::Cprop_Annot(), TERM::Get_coeff(), SUMMARY_FORMAL::Get_position(), INT64, Is_constant_val(), LTKIND_CONST, and val.
Referenced by update_linex_with_constant_mod().
| static void Update_term_with_global_constant | ( | const IPA_NODE * | node, | |
| ST_IDX | base_st_idx, | |||
| INT64 | offset, | |||
| TYPE_ID | mtype, | |||
| TERM * | t | |||
| ) | [static] |
Definition at line 204 of file ipa_section_prop.cxx.
References CONST_DESC, TERM::Get_coeff(), INT64, Is_constant_global(), LTKIND_CONST, and val.
Referenced by update_linex_with_constant_mod().
| static BOOL Value_has_only_formals | ( | SUMMARY_VALUE * | value, | |
| mBOOL * | formals_used | |||
| ) | [static] |
Definition at line 898 of file ipa_section_prop.cxx.
References Expr_has_only_formals(), FALSE, SUMMARY_VALUE::Get_expr_index(), SUMMARY_VALUE::Get_formal_index(), SUMMARY_FORMAL::Get_position(), SUMMARY_VALUE::Is_const_st(), SUMMARY_VALUE::Is_expr(), SUMMARY_VALUE::Is_formal(), SUMMARY_VALUE::Is_int_const(), and TRUE.
Referenced by Expr_has_only_formals(), and IPA_FORMALS_IN_ARRAY_SECTION_DF::Trans().
SUMMARY_EXPR* expressions [static] |
SUMMARY_FORMAL* formals [static] |
Definition at line 845 of file ipa_section_prop.cxx.
Referenced by IPA_Do_Linearization(), IPA_update_summary_st_idx(), CG_BROWSER::Ivar_Name(), param_types_are_compatible(), Union_Formal_Cprop_Annot(), and Union_Formal_Cprop_Annot_With_Cloning().
BOOL IPA_array_prop_pool_initialized = FALSE [static] |
Definition at line 79 of file ipa_section_prop.cxx.
Referenced by IPA_ARRAY_DF_FLOW::IPA_ARRAY_DF_FLOW().
| BOOL Trace_IPA_Sections = FALSE |
Definition at line 77 of file ipa_section_prop.cxx.
Referenced by IPA_ARRAY_DF_FLOW::IPA_ARRAY_DF_FLOW(), Union_sections(), and update_region().
SUMMARY_VALUE* values [static] |
Definition at line 844 of file ipa_section_prop.cxx.
Referenced by _nl_init_domain_conv(), branch_prob(), builtin_define_type_max(), c_parser_enum_specifier(), dump_expr(), elf_xtensa_relax_section(), finish_enum(), generate_bytecode_insns(), IPA_update_summary_st_idx(), WN_INSTRUMENT_WALKER::Merge_Icall_Feedback(), remove_ssa_form(), simplify_by_exploding(), unmark_used_attributes(), and value_map_hash_table_init().
1.5.6