osprey/ipa/main/optimize/ipo_const.cxx File Reference

#include <stdint.h>
#include <alloca.h>
#include "defs.h"
#include "opcode.h"
#include "symtab.h"
#include "const.h"
#include "cxx_template.h"
#include "wn_tree_util.h"
#include "lwn_util.h"
#include "wn_simp.h"
#include "ipo_defs.h"
#include "ipa_df.h"
#include "ipaa.h"
#include "ipa_cprop.h"
#include "ipa_option.h"
#include "ipo_parent.h"
#include "ipo_const.h"
#include "ipc_symtab_merge.h"
#include "ipa_section_annot.h"

Include dependency graph for ipo_const.cxx:

Go to the source code of this file.

Data Types

type  fix_array_bounds
type  fix_aliased_formals

Defines

#define __STDC_LIMIT_MACROS

Typedefs

typedef HASH_TABLE< ST *, WN * > ST_TO_WN_MAP
typedef HASH_TABLE< TY_IDX,
TY_IDX
TY_TO_TY_MAP

Functions/Subroutines

static BOOL ST_has_const_value (ST *st, WN *stid, ST_TO_WN_MAP *st_to_intconst_map)
static BOOL TY_AR_has_new_const (TY_IDX ty_idx, const ST_TO_WN_MAP *st_to_stid_map, ST_TO_WN_MAP *st_to_intconst_map)
static TY_IDX Copy_array_type (TY_IDX ty_idx)
static void TY_AR_propagate_constants (TY_IDX ty_idx, const ST_TO_WN_MAP *st_to_intconst_map)
static void Update_wn_types (WN *pu, const TY_TO_TY_MAP *old_to_new_ty_map)
static void Update_array_bounds (WN *pu)
static WNSummary_value_to_intconst (const SUMMARY_VALUE &value, TYPE_ID mtype, BOOL is_ref_param)
static BOOL IPA_constant_in_array_bounds (const SUMMARY_VALUE &value, WN *pu, ST *formal_st)
static WNGen_WN_Const (const SUMMARY_VALUE &value)
static STCreate_Global_ST (const SUMMARY_VALUE &value)
static WNGen_LDA (const SUMMARY_VALUE &value, const ST *formal)
static void Generate_Assignment_Stmt (ST *formal, WN *block, WN *const_wn)
template<class OPERATION>
void for_all_wn (WN *wn, OPERATION &op)
static void Replace_Formal_By_Actual (WN *func_body, ST_IDX formal, const ST *actual)
static void Replace_Icall (TREE_ITER &iter, const WN *icall, ST *actual)
static BOOL Replace_Formal_By_LDA (WN *func_body, ST_IDX formal, ST *actual)
static void Replace_Addr_Of_Formal_By_Actual (WN *func_body, ST_IDX formal, const WN *actual)
static void Check_If_Global_Has_Const_Value (IPA_NODE *node, WN *block, ST *global_st)
static void Propagate_Constants (IPA_NODE *node, WN *w, VALUE_DYN_ARRAY *cprop_annot)
void IPA_Propagate_Constants (IPA_NODE *n, BOOL delete_const_param)
static UINT32 Compute_param_count (INT kid, const VALUE_DYN_ARRAY &cprop_annot)
void Reset_param_list (IPA_NODE *caller, IPA_NODE *callee, IPA_EDGE *edge, IPA_CALL_GRAPH *cg)
static STCreate_Const_ST (const SUMMARY_VALUE &value)
void IPO_propagate_globals (IPA_NODE *n)


Define Documentation

#define __STDC_LIMIT_MACROS

Definition at line 46 of file ipo_const.cxx.


Typedef Documentation

Definition at line 70 of file ipo_const.cxx.

Definition at line 71 of file ipo_const.cxx.


Function Documentation

static void Check_If_Global_Has_Const_Value ( IPA_NODE node,
WN block,
ST global_st 
) [static]

static UINT32 Compute_param_count ( INT  kid,
const VALUE_DYN_ARRAY cprop_annot 
) [static]

Definition at line 1277 of file ipo_const.cxx.

References i, INT, last, DYN_ARRAY< T >::Lastidx(), MIN, and min.

Referenced by Reset_param_list().

static TY_IDX Copy_array_type ( TY_IDX  ty_idx  )  [static]

static ST* Create_Const_ST ( const SUMMARY_VALUE value  )  [static]

static ST* Create_Global_ST ( const SUMMARY_VALUE value  )  [static]

template<class OPERATION>
void @3196::for_all_wn ( WN wn,
OPERATION &  op 
) [inline, static]

static WN* Gen_LDA ( const SUMMARY_VALUE value,
const ST formal 
) [inline, static]

static WN* Gen_WN_Const ( const SUMMARY_VALUE value  )  [static]

static void Generate_Assignment_Stmt ( ST formal,
WN block,
WN const_wn 
) [static]

static BOOL IPA_constant_in_array_bounds ( const SUMMARY_VALUE value,
WN pu,
ST formal_st 
) [static]

void IPA_Propagate_Constants ( IPA_NODE n,
BOOL  delete_const_param 
)

void IPO_propagate_globals ( IPA_NODE n  ) 

static void Propagate_Constants ( IPA_NODE node,
WN w,
VALUE_DYN_ARRAY cprop_annot 
) [static]

static void Replace_Addr_Of_Formal_By_Actual ( WN func_body,
ST_IDX  formal,
const WN actual 
) [static]

Definition at line 904 of file ipo_const.cxx.

References for_all_wn(), Is_True, op, OPR_FUNC_ENTRY, and WN_operator().

Referenced by Propagate_Constants().

static void Replace_Formal_By_Actual ( WN func_body,
ST_IDX  formal,
const ST actual 
) [inline, static]

static BOOL Replace_Formal_By_LDA ( WN func_body,
ST_IDX  formal,
ST actual 
) [static]

static void Replace_Icall ( TREE_ITER iter,
const WN icall,
ST actual 
) [static]

void Reset_param_list ( IPA_NODE caller,
IPA_NODE callee,
IPA_EDGE edge,
IPA_CALL_GRAPH cg 
)

static BOOL ST_has_const_value ( ST st,
WN stid,
ST_TO_WN_MAP st_to_intconst_map 
) [static]

static WN* Summary_value_to_intconst ( const SUMMARY_VALUE value,
TYPE_ID  mtype,
BOOL  is_ref_param 
) [static]

static BOOL TY_AR_has_new_const ( TY_IDX  ty_idx,
const ST_TO_WN_MAP st_to_stid_map,
ST_TO_WN_MAP st_to_intconst_map 
) [static]

static void TY_AR_propagate_constants ( TY_IDX  ty_idx,
const ST_TO_WN_MAP st_to_intconst_map 
) [static]

static void Update_array_bounds ( WN pu  )  [static]

static void Update_wn_types ( WN pu,
const TY_TO_TY_MAP old_to_new_ty_map 
) [static]


Variable Documentation

const WN* actual

const ST_IDX formal

const TYPE_ID mtype

Definition at line 685 of file ipo_const.cxx.

Referenced by CODEMAP::Add_tcon(), Allocate_Result_TN(), Apply_Back_Sub_Invariant(), Apply_Back_Sub_Variant(), Apply_Interleave(), Array_Is_HFA(), Build_Io_Mask(), Cast_Float_Operands(), CGEMIT_Print_Variable_Info(), CGTARG_Load_From_Memory(), CGTARG_Store_To_Memory(), CGTARG_TN_For_Asm_Operand(), IVR::Choose_primary_IV(), Convert_Imm_Mul(), Create_DST_type_For_Tree(), Create_Global_ST(), Create_Io_Entry(), RVI_NODE::Create_load(), RVI_NODE::Create_store(), Create_Stride1_Condition_If_Required(), Create_TY_For_Tree(), cwh_io_split_io_items(), OPT_STAB::Enter_symbol(), Evaluate_chi(), Execution_Cost_Expr(), Execution_Cost_Value(), Exp_COPY(), Exp_Intrinsic_Call(), Exp_Landingpadentry_Intrinsic(), Exp_Select_And_Condition(), Exp_To_Linex_Array(), Expand_Load(), Expand_Madd(), Expand_Misaligned_Load(), Expand_Vote(), Gen_Assign_Of_Init_Val(), get_32bit_cilist_item(), get_FIT_type(), Get_Return_Info(), ALIAS_RULE::Get_stripped_mtype(), Handle_INTRINSIC_OP(), Handle_LDID(), Identity_assignment_type(), Initialize_Special_Global_Symbols(), INITV_Set_LABEL(), IPA_constant_in_array_bounds(), IPA_LNO_Read_Terms(), Irb_Init_Integer(), lower_bit_field_id(), lower_io_items(), lower_return_ldid(), Machine_Type(), move_ext_is_replaced(), RVI_NODE::Mtype(), RVI_ANN::New_ldid(), NORMALIZE_LOOP::Normalize_do_loop(), PREG_To_TN(), SUMMARIZE< program >::Process_constant_jump_function(), IPO_INLINE::Process_Copy_In(), IPO_INLINE::Process_Copy_In_Copy_Out(), IPO_INLINE::Process_Formal_ST(), Process_Preg_Temps(), Replace_Formal_By_Actual(), Replace_Wnexp_With_Exp_Copy(), Set_up_all_preg_symbols(), Split_Array(), ST_is_const_initialized_scalar(), Struct_Is_HFA(), Traverse_TYs(), TY_Of_Expr(), Union_Formal_Cprop_Annot(), Union_Formal_Cprop_Annot_With_Cloning(), Union_Quasi_Clone_Cprop_Annot(), update_linex_with_constant_mod(), Walk_Linex(), WFE_Add_Aggregate_Init_Double(), WFE_Add_Aggregate_Init_Integer(), WFE_Alloca_ST(), WFE_Save_Expr(), AGGINIT::WGEN_Add_Aggregate_Init_Integer(), WGEN_Save_Expr(), and WN_Single_Iteration_Cost().

const INT64 value

Definition at line 686 of file ipo_const.cxx.


Generated on Wed Apr 8 15:10:44 2009 for Open64 by  doxygen 1.5.6