#include <access_vector.h>

Definition at line 930 of file access_vector.h.
| ACCESS_VECTOR::ACCESS_VECTOR | ( | const ACCESS_VECTOR & | ) | [inline, private] |
Definition at line 937 of file access_vector.h.
| ACCESS_VECTOR::ACCESS_VECTOR | ( | UINT16 | lnest, | |
| MEM_POOL * | mem_pool = 0 | |||
| ) | [inline] |
| ACCESS_VECTOR::ACCESS_VECTOR | ( | ) | [inline] |
Definition at line 1001 of file access_vector.h.
References _lcoeff, Delinearized_Symbol, Lin_Symb, Non_Lin_Symb, NULL, Too_Messy, and TRUE.
Referenced by Convert_Bound_To_Exp().
| ACCESS_VECTOR::ACCESS_VECTOR | ( | const ACCESS_VECTOR * | a, | |
| MEM_POOL * | pool | |||
| ) |
| ACCESS_VECTOR::ACCESS_VECTOR | ( | const SYSTEM_OF_EQUATIONS * | soe, | |
| const INT | i, | |||
| const SYMBOL_LIST * | syms, | |||
| const INT | depth, | |||
| const INT | dim, | |||
| const INT | non_const_loops, | |||
| const INT | which_array, | |||
| BOOL | is_lower_bound, | |||
| MEM_POOL * | pool | |||
| ) |
Definition at line 2737 of file access_vector.cxx.
References _lcoeff, _mem_pool, _nest_depth, _non_const_loops, SYSTEM_OF_EQUATIONS::Aeq(), SYSTEM_OF_EQUATIONS::Ale(), SLIST::Append(), SYSTEM_OF_EQUATIONS::Beq(), SYSTEM_OF_EQUATIONS::Ble(), Const_Offset, CXX_NEW, CXX_NEW_ARRAY, Delinearized_Symbol, FALSE, SLIST_ITER::First(), INT, INT64, SLIST_ITER::Is_Empty(), iter, Lin_Symb, mINT32, SLIST_ITER::Next(), Non_Lin_Symb, NULL, SYSTEM_OF_EQUATIONS::Num_Vars(), s, Too_Messy, SYSTEM_OF_EQUATIONS::Work(), and SYSTEM_OF_EQUATIONS::Work_Const().
| ACCESS_VECTOR::~ACCESS_VECTOR | ( | ) | [inline] |
Definition at line 1035 of file access_vector.h.
References _lcoeff, _mem_pool, CXX_DELETE, CXX_DELETE_ARRAY, Lin_Symb, MEM_POOL_Set_Default(), and Non_Lin_Symb.
| void ACCESS_VECTOR::Add_Sum | ( | WN * | wn, | |
| INT64 | coeff, | |||
| DOLOOP_STACK * | stack, | |||
| BOOL | allow_nonlin = FALSE | |||
| ) | [private] |
Definition at line 2001 of file access_vector.cxx.
References _mem_pool, Add_Nonlin(), Add_Symbol(), SLIST::Append(), Const_Offset, CXX_DELETE, CXX_NEW, SLIST_ITER::First(), INT, INT32_MAX, INT32_MIN, INT64, SLIST_ITER::Is_Empty(), iter, SLIST::Len(), MEM_POOL_Pop, MEM_POOL_Push, SUMPROD_LIST::Merge(), SLIST_ITER::Next(), Non_Lin_Symb, NULL, OPC_I4U8CVT, OPC_I8I4CVT, OPC_U8CVTL, OPC_U8I4CVT, OPR_ADD, OPR_ASHR, OPR_INTCONST, OPR_LDID, OPR_MPY, OPR_NEG, OPR_PAREN, OPR_SHL, OPR_SUB, SLIST::Remove(), SLIST::Remove_Headnode(), sl, SYMBOL_NODE::Symbol, Too_Messy, TRUE, WN_const_val(), WN_cvtl_bits(), WN_kid(), WN_kid0(), WN_opcode(), and WN_operator().
| SUMPROD_LIST * ACCESS_VECTOR::Add_Nonlin | ( | WN * | wn, | |
| SUMPROD_LIST * | list, | |||
| DOLOOP_STACK * | stack | |||
| ) | [private] |
Definition at line 2215 of file access_vector.cxx.
References _mem_pool, BOOL, STACK< T >::Bottom_nth(), CXX_NEW, STACK< T >::Elements(), FALSE, SLIST_ITER::First(), INT32, INT32_MAX, INT32_MIN, INT64, SLIST_ITER::Is_Empty(), Is_True, iter, SUMPROD_LIST::Merge(), SUMPROD_LIST::Negate_Me(), SLIST_ITER::Next(), NULL, offset, OPR_ADD, OPR_INTCONST, OPR_LDID, OPR_MPY, OPR_NEG, OPR_SUB, symbol, Too_Messy, TRUE, Update_Non_Const_Loops(), WN_const_val(), WN_index, WN_kid0(), WN_kid1(), and WN_operator().
Referenced by Add_Sum().
| ACCESS_VECTOR& ACCESS_VECTOR::operator= | ( | const ACCESS_VECTOR & | ) | [private] |
| mUINT16 ACCESS_VECTOR::Non_Const_Loops | ( | ) | const [inline] |
Definition at line 941 of file access_vector.h.
References _non_const_loops.
Referenced by DEPV_COMPUTE::Compute(), ARRAY_REF_LIST::Conflict_Refs(), DEPV_COMPUTE::Copy_Bounds_To_Work(), PF_LG::Gen_Pref_Node(), Has_Reuse(), intrinsic_operand_kind(), PAR_STAT::Invariant_Reduction(), REGION::Is_Loop_Invariant(), LNO_Update_Indx_Range(), Loop_Invariant_Access(), ARRAY_REF_LIST::Mark_Invariants(), MIR_Hoistable_Ref(), ACCESS_ARRAY::Non_Const_Loops(), Process_Load(), DISTRIBUTION::Process_Memory(), ARRAY_REF_LIST::Remove_Invariants(), Safe_Depth(), DEPV_COMPUTE::Same_Monotonic(), SE_Safe_Depth(), AXLE_NODE::Set_To_Kernel_Image(), simd_operand_kind(), DEPV_COMPUTE::Simple_Gcd_Indep(), SNL_Is_Non_Varying_Access_Array(), DEPV_COMPUTE::Trivial_Test(), and Variant_Array().
Definition at line 942 of file access_vector.h.
References _non_const_loops.
Referenced by AXLE_NODE::Set_To_Kernel_Image().
Definition at line 943 of file access_vector.h.
References _non_const_loops, and MAX.
Referenced by ACCESS_ARRAY::Set_Array(), and ACCESS_ARRAY::Update_Non_Const_Loops().
| void ACCESS_VECTOR::Update_Non_Const_Loops | ( | WN * | wn, | |
| DOLOOP_STACK * | stack | |||
| ) |
Definition at line 2299 of file access_vector.cxx.
References _non_const_loops, STACK< T >::Bottom_nth(), defs, STACK< T >::Elements(), SLIST_ITER::First(), INT, SLIST_ITER::Is_Empty(), iter, LNO_Common_Loop(), LWN_Get_Parent, MAX, SLIST_ITER::Next(), opc, OPC_DO_LOOP, OPCODE_is_load(), OPCODE_operator(), OPR_LDID, DU_MANAGER::Ud_Get_Def(), WN_kid(), WN_kid_count(), and WN_opcode().
Referenced by Add_Nonlin(), and Add_Symbol().
| mUINT16 ACCESS_VECTOR::Nest_Depth | ( | ) | const [inline] |
Definition at line 950 of file access_vector.h.
References _nest_depth.
Referenced by _xdependence_is_preserved(), _xis_avect_linear_comb_amat_queue(), Access_Vector_Condition_Provable(), COND_BOUNDS_INFO::Add_Access(), SNL_BOUNDS_INFO::Add_Access(), Add_Parent_Loop_Constraints(), PF_UGS::Add_Ref(), ARRAY_REF_NODE::ARRAY_REF_NODE(), BS_Is_Linearized(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl_Array(), CACHE_REGION::CACHE_REGION(), COND_Do_Info(), ARRAY_REF_LIST::Conflict_Refs(), Cse_Or_Dup(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), Find_Average(), First_Invariant_Depth(), Get_Range(), ARRAY_LOWER_REF::Get_Ref_Loop(), inner_fission_2(), Inner_LB_Is_Outer_Index_Variable(), Inner_LB_Outer_IV_Offset(), SYMBOL_TREE::Integer_Ref_Needs_Reg(), Is_Equal(), Is_Invariant(), Is_Similar(), KERNEL_IMAGE::KERNEL_IMAGE(), Lego_Index_From_Access_Vector(), Lego_Skew_Canonical(), ARRAY_REF_NODE::Lexically_Before(), LNO_Update_Indx_Range(), Loop_Invariant_Access(), Loop_Invariant_Inside(), LINEX::Map_access_vector(), Mark_Indexed_References(), Middle_Loop_Pwr2_Group_Hack(), MIR_Hoistable_Ref(), operator<(), Print(), Print_Analysis_Info(), Process_Load(), DISTRIBUTION::Process_Memory(), Register_Name_To_Statement(), Remove_Redundant_And_Inconsistent_If(), Same_Ug(), ACCESS_ARRAY::Set_Array(), DO_LOOP_INFO::Set_Est_Num_Iterations(), ACCESS_ARRAY::Set_LB_r(), AXLE_NODE::Set_To_Kernel_Image(), Shackle_Do_Depth_For_If(), DEPV_COMPUTE::Simple_Gcd_Indep(), Simplify_Coeff_Access_Vector(), Single_Loop_Coeff(), Sink_If2do(), Varying_Load(), and Weird_Triangular().
Definition at line 952 of file access_vector.h.
References _lcoeff, _mem_pool, _nest_depth, CXX_DELETE_ARRAY, CXX_NEW_ARRAY, i, INT, mINT32, and NULL.
Referenced by AXLE_NODE::Set_To_Kernel_Image(), Trip_Reducible_Loop(), and Update_Nest_Depth_Traverse().
| BOOL ACCESS_VECTOR::Is_Const | ( | ) | const |
Definition at line 756 of file access_vector.cxx.
References _lcoeff, _nest_depth, FALSE, INT32, SLIST::Is_Empty(), Lin_Symb, Non_Lin_Symb, Too_Messy, and TRUE.
Referenced by Access_Vector_Condition_Provable(), PF_LG::Add_Group(), PF_LG::Add_Ref(), ARRAY_REF_LIST::Calc_Regs_And_Refs(), ARA_LOOP_INFO::Create_Old_IF_Clause(), determine_if_sinkable_in_do(), Exact_Iteration_Count(), fast_fuse_check_ok(), Find_Average(), Find_Step(), Fuse_Test(), PF_LG::Gen_Pref_Node(), HMB_Maximum_Point(), Hoist_Iload_Ldid_Upper_Bound_One_Level(), Hoist_Lower_Bound(), Hoist_Upper_Bound(), IPL_Build_Do_Access(), Iterations(), Iters(), LNO_Build_Access(), LNO_Build_Do_Access(), Loop_Has_Positive_Trip(), PF_LG::LR_Compare(), Num_Iters(), Perfect_Nested_Outer_Loop(), PF_UGS::PF_UGS(), KERNEL_IMAGE::Project(), PF_LG::Ref_In_LG(), DO_LOOP_INFO::Set_Est_Num_Iterations(), DEPV_COMPUTE::Set_Step(), Single_Loop_Coeff(), SNL_Finalize_Loops(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), and Trip_Reducible_Loop().
| void ACCESS_VECTOR::Set | ( | WN * | wn, | |
| DOLOOP_STACK * | stack, | |||
| INT8 | sign, | |||
| INT | offset = 0, |
|||
| BOOL | allow_nonlin = FALSE | |||
| ) |
Definition at line 1966 of file access_vector.cxx.
References Add_Sum(), Const_Offset, Delinearized_Symbol, FALSE, INT64, Non_Lin_Symb, NULL, and Too_Messy.
Referenced by IPL_Build_Do_Access(), LNO_Build_Do_Access(), ACCESS_ARRAY::Set_Array(), Set_Condition(), ACCESS_ARRAY::Set_LB_r(), and ACCESS_ARRAY::Set_UB().
| void ACCESS_VECTOR::Add | ( | WN * | wn, | |
| DOLOOP_STACK * | stack, | |||
| INT8 | sign | |||
| ) |
Definition at line 1977 of file access_vector.cxx.
References Add_Sum(), INT64, and LNO_Allow_Nonlinear.
Referenced by Set_Condition(), ACCESS_ARRAY::Set_LB(), and ACCESS_ARRAY::Set_UB_r().
Definition at line 2580 of file access_vector.cxx.
References _lcoeff, _nest_depth, SLIST_ITER::First(), ii, in, INT, INT32_MAX, INT64, SLIST_ITER::Is_Empty(), iter, Lin_Symb, SLIST_ITER::Next(), Non_Lin_Symb, Too_Messy, and TRUE.
Referenced by Access_Trip_Count(), Outer_LB_GE_Inner_UB(), and ACCESS_ARRAY::Set_UB_r().
| BOOL ACCESS_VECTOR::operator== | ( | const ACCESS_VECTOR & | av | ) | const |
Definition at line 657 of file access_vector.cxx.
References _nest_depth, _non_const_loops, Const_Offset, Delinearized_Symbol, FALSE, INT, INT32, SLIST::Is_Empty(), Lin_Symb, Loop_Coeff(), MIN, Non_Lin_Symb, NULL, Too_Messy, and TRUE.
| BOOL ACCESS_VECTOR::Contains_Lin_Symb | ( | ) | const [inline] |
Definition at line 975 of file access_vector.h.
References SLIST::Is_Empty(), and Lin_Symb.
Referenced by _xdependence_is_preserved(), Access_vector_is_too_messy(), COND_BOUNDS_INFO::Add_Access(), Add_Access(), SNL_BOUNDS_INFO::Add_Access(), Add_Bound(), CACHE_REGION::CACHE_REGION(), DEPV_COMPUTE::Copy_Bound_To_Work(), DEPV_COMPUTE::Copy_Equal_To_Work(), DEPV_COMPUTE::Copy_Le_To_Work(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), Est_Num_Iters_Suspect(), Find_Average(), PF_LG::Gen_Pref_Node(), Inner_LB_Is_Outer_Index_Variable(), COND_BOUNDS_INFO::Kill_Written_Symbols(), Lego_Simplify(), Lego_Skew_Canonical(), LEGO_UGS::LEGO_UGS(), LNO_Update_Indx_Range(), LINEX::Map_access_vector(), Mark_used_formal_symbols(), Negate_Me(), Same_Ug(), ACCESS_ARRAY::Set_Array(), Single_Loop_Coeff(), Substitute(), and DEPV_COMPUTE::Trivial_Test().
| void ACCESS_VECTOR::Add_Symbol | ( | INT64 | coeff, | |
| SYMBOL | symbol, | |||
| DOLOOP_STACK * | stack, | |||
| WN * | wn | |||
| ) |
Definition at line 2137 of file access_vector.cxx.
References _lcoeff, _mem_pool, _nest_depth, BOOL, STACK< T >::Bottom_nth(), CXX_DELETE, CXX_NEW, CXX_NEW_ARRAY, STACK< T >::Elements(), FALSE, SLIST_ITER::First(), INT, INT32, INT32_MAX, INT32_MIN, SLIST_ITER::Is_Empty(), iter, Lin_Symb, mINT32, SLIST_ITER::Next(), NULL, SLIST::Prepend(), SLIST::Remove(), SLIST::Remove_Headnode(), SYMBOL_NODE::Symbol, Too_Messy, TRUE, TY_is_volatile, Update_Non_Const_Loops(), WN_index, and WN_ty().
Referenced by Add_Sum(), Substitute(), and Wn_To_Access_Vector().
| BOOL ACCESS_VECTOR::Contains_Non_Lin_Symb | ( | ) | const [inline] |
Definition at line 978 of file access_vector.h.
References SLIST::Is_Empty(), and Non_Lin_Symb.
Referenced by _xdependence_is_preserved(), Access_vector_is_too_messy(), COND_BOUNDS_INFO::Add_Access(), SNL_BOUNDS_INFO::Add_Access(), PF_LOOPNODE::Add_Ref(), LOOPINFO::Build_linex(), CACHE_REGION::CACHE_REGION(), SNL_ANAL_INFO::CONST_BOUNDS_INFO::CONST_BOUNDS_INFO(), DEPV_COMPUTE::Copy_Bounds_To_Work(), determine_if_sinkable_in_do(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), Est_Num_Iters_Suspect(), Find_Average(), PF_LG::Gen_Pref_Node(), inner_fission_2(), Inner_LB_Is_Outer_Index_Variable(), Is_Consistent_Condition(), Lego_Simplify(), Lego_Skew_Canonical(), LEGO_UGS::LEGO_UGS(), LNO_Update_Indx_Range(), Mark_used_formal_symbols(), Negate_Me(), PF_UGS::PF_UGS(), REGION::REGION(), Register_Name_To_Statement(), Safe_Depth(), DEPV_COMPUTE::Same_Monotonic(), Same_Ug(), ACCESS_ARRAY::Set_Array(), DEPV_COMPUTE::Simple_Gcd_Indep(), Single_Loop_Coeff(), SNL_Is_Non_Varying_Access_Array(), Substitute(), DEPV_COMPUTE::Trivial_Test(), and Unit_Stride_Reference().
| void ACCESS_VECTOR::Update_Non_Const_Loops_Nonlinear | ( | DOLOOP_STACK * | stack | ) |
Definition at line 1518 of file access_vector.cxx.
References _non_const_loops, STACK< T >::Bottom_nth(), SLIST_ITER::First(), INT, SLIST_ITER::Is_Empty(), iter, MAX, SLIST_ITER::Next(), node, Non_Lin_Symb, sl, and WN_index.
Referenced by ACCESS_ARRAY::Set_Array().
| void ACCESS_VECTOR::Substitute | ( | INT | formal_number, | |
| WN * | wn_sub, | |||
| DOLOOP_STACK * | stack, | |||
| BOOL | allow_nonlin = FALSE | |||
| ) |
Definition at line 396 of file access_vector.cxx.
References _mem_pool, Add_Symbol(), Contains_Lin_Symb(), Contains_Non_Lin_Symb(), CXX_DELETE, DevWarn, SLIST_ITER::First(), SYMBOL::Formal_Number(), INT, INT32, SLIST_ITER::Is_Empty(), SYMBOL::Is_Formal(), iter, Lin_Symb, SLIST_ITER::Next(), node, Non_Lin_Symb, NULL, OPR_LDA, OPR_LDID, SUMPROD_NODE::Prod_List, SLIST::Remove(), SYMBOL_NODE::Symbol, Too_Messy, TRUE, WN_offset(), WN_operator(), and WN_st().
Referenced by IPA_LNO_Evaluate_Array_Formals(), and ACCESS_ARRAY::Substitute().
| INT32 ACCESS_VECTOR::Loop_Coeff | ( | UINT16 | i | ) | const [inline] |
Definition at line 984 of file access_vector.h.
References _lcoeff, and _nest_depth.
Referenced by _xdependence_is_preserved(), _xis_avect_linear_comb_amat_queue(), Access_Vector_Condition_Provable(), COND_BOUNDS_INFO::Add_Access(), Add_Access(), SNL_BOUNDS_INFO::Add_Access(), Add_Access_Vector_Entry(), Add_Bound(), Add_Parent_If_Constraints(), Add_Parent_Loop_Constraints(), PF_UGS::Add_Ref(), LEGO_UGS::Add_Ref(), ARA_LOOP_INFO::Bounds_Depend_On_Index(), BS_Is_Linearized(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl_Array(), Cache_Line_Edge_Reuse(), CACHE_REGION::CACHE_REGION(), PF_UGS::ComputePFVec(), ARRAY_REF_LIST::Conflict_Refs(), SNL_ANAL_INFO::CONST_BOUNDS_INFO::CONST_BOUNDS_INFO(), copy_access_array_from_src2dst(), DEPV_COMPUTE::Copy_Bound_To_Work(), DEPV_COMPUTE::Copy_Equal_To_Work(), DEPV_COMPUTE::Copy_Le_To_Work(), Cse_Or_Dup(), Difference_Inequality(), PF_LG::Distance_LR(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), Est_Num_Iters_Suspect(), Fill_Constant_Array(), Find_Average(), First_Invariant_Depth(), Fuse_Test(), PF_LG::Gen_Pref_Node(), Get_Range(), Handle_Sink_General_Case(), Handle_Sink_Promotion_Case(), Handle_Sink_Symbolic_Non_Promotion_Case(), Has_Reuse(), Highest_Guard_Point(), inner_fission_2(), Inner_LB_Is_Outer_Index_Variable(), Inner_LB_Outer_IV_Offset(), SYMBOL_TREE::Integer_Ref_Needs_Reg(), Interferes_With_Symbolic_Bound(), intrinsic_operand_kind(), Invariant_Red_Depth(), PAR_STAT::Invariant_Reduction(), IPA_LNO_Read_Terms(), IPA_LNO_Update_Independent_Loops(), IPL_Build_Do_Access(), Is_Equal(), Is_Invariant(), REGION::Is_Loop_Invariant(), Is_Outer_Tile(), is_promotion_case(), Is_Provably_In_Bounds(), Is_Similar(), is_vector_inconsistent(), is_vector_trivial(), KERNEL_IMAGE::KERNEL_IMAGE(), Lego_Index_From_Access_Vector(), Lego_Loop_Want_Skew(), Lego_Simplify(), Lego_Skew_Canonical(), Lego_Skew_Equivalent(), LEGO_UGS::LEGO_UGS(), LNO_Build_Do_Access(), LNO_Update_Indx_Range(), Loop_Invariant_Access(), Loop_Invariant_Inside(), LINEX::Map_access_vector(), Mark_Indexed_References(), ARRAY_REF_LIST::Mark_Invariants(), Maybe_Handle_Sink_Promotion_Case(), Middle_Loop_Pwr2_Group_Hack(), MIR_Hoistable_Ref(), operator<(), operator==(), Peelable(), PF_UGS::PF_UGS(), Prepare_Axle(), Print(), Print_Analysis_Info(), Process_Load(), DISTRIBUTION::Process_Memory(), Ref_Contains_Reuse_For_Loop(), REGION::REGION(), REGION::Region_Projection(), Register_Name_To_Statement(), ARRAY_REF_LIST::Remove_Invariants(), RG::RG(), DEPV_COMPUTE::Same_Monotonic(), Same_Ug(), ACCESS_ARRAY::Set_Array(), DO_LOOP_INFO::Set_Est_Num_Iterations(), Set_Indexed_Loop_Bounds(), Shackle_Do_Depth_For_If(), simd_operand_kind(), DEPV_COMPUTE::Simple_Gcd_Indep(), Simplify_Coeff_Access_Vector(), Single_Loop_Coeff(), SNL_Access_Index_Section(), SNL_Bound_Loop_Coeff_Worth_Optimizing(), SNL_Is_Invariant(), SNL_LB_Worth_Optimizing(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), SNL_UB_Worth_Optimizing(), Soe_Implies_Access_Vector(), LEGO_UGS::Stride(), Stride_One_Level(), Unit_Stride_Reference(), ARRAY_REF_LIST::Unroll(), V3geLB_Implies_V3geUB(), V3leUB_Implies_V3leLB(), Variant_Array(), Varying_Load(), Vintrinsic_Fission(), PF_LG::Volume(), Walk_Linex(), and Weird_Triangular().
| void ACCESS_VECTOR::Set_Condition | ( | WN * | wn, | |
| DOLOOP_STACK * | stack, | |||
| BOOL | negate | |||
| ) |
Definition at line 1904 of file access_vector.cxx.
References Add(), Const_Offset, FALSE, INT, MTYPE_is_unsigned, offset, OPERATOR_is_compare(), OPR_GE, OPR_GT, OPR_INTCONST, OPR_LE, OPR_LNOT, OPR_LT, Set(), Too_Messy, TRUE, WN_const_val(), WN_desc(), WN_kid0(), WN_kid1(), and WN_operator().
Referenced by ACCESS_ARRAY::Set_IF().
| BOOL ACCESS_VECTOR::Has_Loop_Coeff | ( | ) | const [inline] |
Definition at line 992 of file access_vector.h.
Referenced by COND_Do_Info(), DEPV_COMPUTE::Copy_Bound_To_Work(), DEPV_COMPUTE::Copy_Equal_To_Work(), DEPV_COMPUTE::Copy_Le_To_Work(), Cse_Or_Dup(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), Find_Average(), IPA_LNO_Read_Terms(), IPA_LNO_Update_Independent_Loops(), Lego_Skew_Canonical(), LEGO_UGS::LEGO_UGS(), Prepare_Axle(), DEPV_COMPUTE::Same_Monotonic(), DO_LOOP_INFO::Set_Est_Num_Iterations(), Set_Indexed_Loop_Bounds(), DEPV_COMPUTE::Simple_Gcd_Indep(), Single_Loop_Coeff(), DEPV_COMPUTE::Trivial_Test(), and Walk_Linex().
Definition at line 745 of file access_vector.cxx.
References _lcoeff, _mem_pool, _nest_depth, CXX_NEW_ARRAY, INT, and mINT32.
Referenced by Add_Access_Vector_Entry(), copy_access_array_from_src2dst(), Create_Dummy_Access_Array(), ARRAY_REF::Enter_Scalar_Expand(), Inner_LB_Outer_IV_Offset(), IPA_LNO_Create_Dummy_Access_Array(), IPA_LNO_Read_Terms(), ACCESS_ARRAY::Set_LB_r(), AXLE_NODE::Set_To_Kernel_Image(), Simplify_Coeff_Access_Vector(), ARRAY_REF_LIST::Unroll(), V3geLB_Implies_V3geUB(), V3leUB_Implies_V3leLB(), and Walk_Linex().
Definition at line 513 of file access_vector.cxx.
References fprintf(), and MAX_TLOG_CHARS.
Referenced by Add_Access(), Add_Bound(), DO_LOOP_INFO::Print(), DO_LOOP_INFO_BASE::Print(), ACCESS_ARRAY::Print(), CON_PAIR::Print(), Soe_Implies_Access_Vector(), and CON_PAIR::WB_Print().
| INT ACCESS_VECTOR::Print | ( | char * | bf, | |
| INT | ccount, | |||
| BOOL | is_bound = FALSE, |
|||
| BOOL | print_brackets = TRUE | |||
| ) | const |
Definition at line 520 of file access_vector.cxx.
References _non_const_loops, BOOL, Const_Offset, Delinearized_Symbol, FALSE, INT, INT32, SLIST::Is_Empty(), Lin_Symb, Loop_Coeff(), MAX_TLOG_CHARS, SYMBOL::Name(), Nest_Depth(), Non_Lin_Symb, NULL, SUMPROD_LIST::Print(), INTSYMB_LIST::Print(), snprintfd(), snprintfll(), snprintfs(), Too_Messy, and TRUE.
| void ACCESS_VECTOR::Print_Analysis_Info | ( | FILE * | fp, | |
| DOLOOP_STACK & | do_stack, | |||
| BOOL | is_bound = FALSE | |||
| ) | const |
Definition at line 600 of file access_vector.cxx.
References _non_const_loops, BOOL, STACK< T >::Bottom_nth(), Const_Offset, STACK< T >::Elements(), FALSE, FmtAssert, fprintf(), INT32, SLIST::Is_Empty(), Lin_Symb, Loop_Coeff(), SYMBOL::Name(), Nest_Depth(), Non_Lin_Symb, NULL, SUMPROD_LIST::Print(), INTSYMB_LIST::Print(), sym, Too_Messy, TRUE, and WN_index.
Referenced by CON_PAIR::Print_Analysis_Info().
Definition at line 1010 of file access_vector.h.
References _lcoeff, _mem_pool, _nest_depth, _non_const_loops, Const_Offset, Delinearized_Symbol, Lin_Symb, Non_Lin_Symb, NULL, Too_Messy, and TRUE.
Referenced by ACCESS_ARRAY::ACCESS_ARRAY(), ACCESS_VECTOR(), ACCESS_ARRAY::Init(), inner_fission_2(), and Register_Name_To_Statement().
| void ACCESS_VECTOR::Init | ( | const ACCESS_VECTOR * | a, | |
| MEM_POOL * | pool | |||
| ) |
Definition at line 715 of file access_vector.cxx.
References _lcoeff, _mem_pool, _nest_depth, _non_const_loops, Const_Offset, CXX_NEW, CXX_NEW_ARRAY, Delinearized_Symbol, SUMPROD_LIST::Init(), INTSYMB_LIST::Init(), INT, Lin_Symb, mINT32, Non_Lin_Symb, NULL, and Too_Messy.
| void ACCESS_VECTOR::Negate_Me | ( | ) |
Definition at line 2629 of file access_vector.cxx.
References _lcoeff, _nest_depth, Const_Offset, Contains_Lin_Symb(), Contains_Non_Lin_Symb(), SLIST_ITER::First(), ii, in, INT, SLIST_ITER::Is_Empty(), Lin_Symb, SLIST_ITER::Next(), Non_Lin_Symb, si, and Too_Messy.
Referenced by Convex_Peeling_Depth(), Difference_Inequality(), Is_Provably_In_Bounds(), is_vector_trivial(), DISTRIBUTION::Process_Memory(), DO_LOOP_INFO::Set_Est_Num_Iterations(), SNL_Finalize_Loops(), SNL_NEST_INFO::SNL_NEST_INFO(), and Soe_Implies_Access_Vector().
| ACCESS_VECTOR * ACCESS_VECTOR::Convert_Bound_To_Exp | ( | MEM_POOL * | mem_pool | ) |
Definition at line 2654 of file access_vector.cxx.
References _lcoeff, _nest_depth, ACCESS_VECTOR(), Const_Offset, CXX_NEW, SLIST_ITER::First(), ii, in, INT, SLIST_ITER::Is_Empty(), Lin_Symb, SLIST_ITER::Next(), Non_Lin_Symb, result, si, and Too_Messy.
Referenced by Find_Average(), and DO_LOOP_INFO::Set_Est_Num_Iterations().
| BOOL ACCESS_VECTOR::Has_Formal_Parameter | ( | ) |
Definition at line 374 of file access_vector.cxx.
References FALSE, SLIST_ITER::First(), ii, SLIST_ITER::Is_Empty(), Lin_Symb, SLIST_ITER::Next(), Non_Lin_Symb, NULL, Too_Messy, and TRUE.
Referenced by CON_PAIR::Has_Formal_Parameter().
| ACCESS_VECTOR* Subtract | ( | ACCESS_VECTOR * | v1, | |
| ACCESS_VECTOR * | v2, | |||
| MEM_POOL * | mem_pool | |||
| ) | [friend] |
Definition at line 2413 of file access_vector.cxx.
| ACCESS_VECTOR* Add | ( | ACCESS_VECTOR * | v1, | |
| ACCESS_VECTOR * | v2, | |||
| MEM_POOL * | mem_pool | |||
| ) | [friend] |
Definition at line 2462 of file access_vector.cxx.
| ACCESS_VECTOR* Mul | ( | INT | c, | |
| ACCESS_VECTOR * | av, | |||
| MEM_POOL * | mem_pool | |||
| ) | [friend] |
Definition at line 2510 of file access_vector.cxx.
| ACCESS_VECTOR* Merge | ( | ACCESS_VECTOR * | v1, | |
| ACCESS_VECTOR * | v2, | |||
| MEM_POOL * | mem_pool | |||
| ) | [friend] |
Definition at line 2535 of file access_vector.cxx.
MEM_POOL* ACCESS_VECTOR::_mem_pool [private] |
Definition at line 931 of file access_vector.h.
Referenced by ACCESS_VECTOR(), Add(), Add_Nonlin(), Add_Sum(), Add_Symbol(), Init(), Merge(), Mul(), Set_Loop_Coeff(), Set_Nest_Depth(), Substitute(), Subtract(), and ~ACCESS_VECTOR().
mINT32* ACCESS_VECTOR::_lcoeff [private] |
Definition at line 932 of file access_vector.h.
Referenced by ACCESS_VECTOR(), Add(), Add_Symbol(), Convert_Bound_To_Exp(), Has_Loop_Coeff(), Init(), Is_Const(), Loop_Coeff(), Merge(), Mul(), Mul(), Negate_Me(), Set_Loop_Coeff(), Set_Nest_Depth(), Subtract(), and ~ACCESS_VECTOR().
mUINT16 ACCESS_VECTOR::_nest_depth [private] |
Definition at line 933 of file access_vector.h.
Referenced by ACCESS_VECTOR(), Add(), Add_Symbol(), Convert_Bound_To_Exp(), Init(), Is_Const(), Loop_Coeff(), Merge(), Mul(), Mul(), Negate_Me(), Nest_Depth(), operator==(), Set_Loop_Coeff(), Set_Nest_Depth(), and Subtract().
mUINT16 ACCESS_VECTOR::_non_const_loops [private] |
Definition at line 934 of file access_vector.h.
Referenced by ACCESS_VECTOR(), Add(), Init(), Max_Non_Const_Loops(), Merge(), Non_Const_Loops(), operator==(), Print(), Print_Analysis_Info(), Set_Non_Const_Loops(), Subtract(), Update_Non_Const_Loops(), and Update_Non_Const_Loops_Nonlinear().
Definition at line 940 of file access_vector.h.
Referenced by ACCESS_VECTOR(), Access_vector_is_too_messy(), Add(), COND_BOUNDS_INFO::Add_Access(), Add_Access(), SNL_BOUNDS_INFO::Add_Access(), Add_Nonlin(), PF_LOOPNODE::Add_Ref(), Add_Sum(), Add_Symbol(), Always_Executes(), Bound_Is_Too_Messy(), ARRAY_REF::Build_Array(), LOOPINFO::Build_linex(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl_Array(), ARRAY_REF_LIST::Calc_Regs_And_Refs(), DEPV_COMPUTE::Compute(), COND_Do_Info(), ARRAY_REF_LIST::Conflict_Refs(), SNL_ANAL_INFO::CONST_BOUNDS_INFO::CONST_BOUNDS_INFO(), Convert_Bound_To_Exp(), DEPV_COMPUTE::Copy_Bounds_To_Work(), DEPV_COMPUTE::Copy_Equal_To_Work(), DEPV_COMPUTE::Copy_Le_To_Work(), Create_Dummy_Access_Array(), ARA_LOOP_INFO::Create_Old_IF_Clause(), Cse_Or_Dup(), determine_if_sinkable_in_do(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), ARRAY_REF::Enter_Innermost_Scalar_Expand(), ARRAY_REF::Enter_Scalar_Expand(), Find_Average(), Has_Formal_Parameter(), Highest_Guard_Point(), Init(), inner_fission_2(), intrinsic_operand_kind(), Invariant_Red_Depth(), PAR_STAT::Invariant_Reduction(), IPA_LNO_Create_Dummy_Access_Array(), IPA_LNO_Read_Terms(), IPL_Build_Do_Access(), Is_Bad_Array(), Is_Consistent_Condition(), Is_Const(), Is_Invariant(), Is_Provably_In_Bounds(), is_vector_inconsistent(), is_vector_trivial(), Lego_Simplify(), Lego_Skew_Canonical(), LEGO_UGS::LEGO_UGS(), LNO_Build_Do_Access(), LNO_Update_Indx_Range(), Loop_Invariant_Access(), Loop_Invariant_Inside(), Mark_used_formal_symbols(), Merge(), Messy_Subscript(), MIR_Build_Loop_List_Array(), Mul(), Mul(), Negate_Me(), operator<(), operator==(), PF_UGS::PF_UGS(), Print(), Print_Analysis_Info(), Process_Load(), DISTRIBUTION::Process_Memory(), Ref_Contains_Reuse_For_Loop(), REGION::REGION(), Register_Name_To_Statement(), Safe_Depth(), DEPV_COMPUTE::Same_Monotonic(), Same_Ug(), SE_Safe_Depth(), Set(), ACCESS_ARRAY::Set_Array(), Set_Condition(), DO_LOOP_INFO::Set_Est_Num_Iterations(), ACCESS_ARRAY::Set_LB_r(), ACCESS_ARRAY::Set_UB_r(), Shackle_Do_Depth_For_If(), Shackleable_Ifs_Surrounding_Stmt(), simd_operand_kind(), DEPV_COMPUTE::Simple_Gcd_Indep(), Single_Loop_Coeff(), SNL_Is_Non_Varying_Access_Array(), Stride_One_Level(), Substitute(), Subtract(), DEPV_COMPUTE::Trivial_Test(), Unit_Stride_Reference(), ARRAY_REF_LIST::Unroll(), V3geLB_Implies_V3geUB(), V3leUB_Implies_V3leLB(), Variant_Array(), Varying_Load(), Walk_Linex(), and Wn_To_Access_Vector().
Definition at line 947 of file access_vector.h.
Referenced by ACCESS_VECTOR(), Access_vector_is_too_messy(), Add(), COND_BOUNDS_INFO::Add_Access(), Add_Access(), SNL_BOUNDS_INFO::Add_Access(), Add_Access_Vector_Entry(), Add_Bound(), Add_Parent_If_Constraints(), Add_Parent_Loop_Constraints(), Add_Symbol(), Contains_Lin_Symb(), Convert_Bound_To_Exp(), DEPV_COMPUTE::Copy_Bound_To_Work(), DEPV_COMPUTE::Copy_Equal_To_Work(), DEPV_COMPUTE::Copy_Le_To_Work(), Cse_Or_Dup(), Get_Range(), Has_Formal_Parameter(), Init(), Interferes_With_Symbolic_Bound(), IPA_LNO_Read_Terms(), Is_Const(), Is_Equal(), Is_Provably_In_Bounds(), Is_Similar(), is_vector_inconsistent(), is_vector_trivial(), COND_BOUNDS_INFO::Kill_Written_Symbols(), Lego_Skew_Equivalent(), Lego_Skew_Offset(), LINEX::Map_access_vector(), Mark_used_formal_symbols(), Merge(), Mul(), Mul(), Negate_Me(), operator<(), operator==(), Print(), Print_Analysis_Info(), Recursively_Add_Array_Lin_Symbols(), Recursively_Add_Bound_Lin_Symbols(), Recursively_Add_Parent_If_Lin_Symbols(), DEPV_COMPUTE::Same_Monotonic(), Same_Ug(), DEPV_COMPUTE::Simple_Gcd_Indep(), Simplify_Coeff_Access_Vector(), SNL_Access_Linear_Section(), SNL_Bound_Lin_Symb_Worth_Optimizing(), Substitute(), Subtract(), and ~ACCESS_VECTOR().
Definition at line 948 of file access_vector.h.
Referenced by ACCESS_VECTOR(), Add(), Add_Parent_If_Constraints(), Add_Sum(), ARRAY_REF::Build_Array(), Contains_Non_Lin_Symb(), Convert_Bound_To_Exp(), Cse_Or_Dup(), Has_Formal_Parameter(), Init(), intrinsic_operand_kind(), Is_Bad_Array(), Is_Const(), Mark_used_formal_symbols(), Merge(), Mul(), Mul(), Negate_Me(), operator<(), operator==(), Print(), Print_Analysis_Info(), Same_Ug(), Set(), simd_operand_kind(), Simplify_Coeff_Access_Vector(), SNL_Access_Nonlinear_Section(), SNL_Bound_Non_Lin_Symb_Worth_Optimizing(), Stride_One_Level(), Substitute(), Subtract(), DEPV_COMPUTE::Trivial_Test(), Update_Non_Const_Loops_Nonlinear(), and ~ACCESS_VECTOR().
Definition at line 949 of file access_vector.h.
Referenced by _xdependence_is_preserved(), Access_Trip_Count(), ACCESS_VECTOR(), Access_Vector_Condition_Provable(), Add(), COND_BOUNDS_INFO::Add_Access(), Add_Access(), SNL_BOUNDS_INFO::Add_Access(), Add_Access_Terms_From_Lists(), Add_Bound(), PF_LG::Add_Group(), Add_Parent_If_Constraints(), Add_Parent_Loop_Constraints(), PF_LG::Add_Ref(), LEGO_UGS::Add_Ref(), Add_Sum(), CACHE_REGION::CACHE_REGION(), ARRAY_REF_LIST::Calc_Regs_And_Refs(), LEGO_UGS::Compute_Offset(), Convert_Bound_To_Exp(), Convex_Peeling_Depth(), copy_access_array_from_src2dst(), DEPV_COMPUTE::Copy_Bound_To_Work(), DEPV_COMPUTE::Copy_Equal_To_Work(), DEPV_COMPUTE::Copy_Le_To_Work(), ARA_LOOP_INFO::Create_Old_IF_Clause(), Cse_Or_Dup(), determine_if_sinkable_in_do(), Difference_Inequality(), PF_LG::Distance_LR(), Do_Loop_Explicit_Affinity(), Est_Num_Iters_Suspect(), Exact_Iteration_Count(), fast_fuse_check_ok(), Fill_Constant_Array(), Find_Average(), Find_Step(), Fuse_Test(), PF_LG::Gen_Pref_Node(), Get_Range(), Has_Reuse(), HMB_Has_Messy_Left_Bound(), HMB_Has_Messy_Right_Bound(), Hoist_Lower_Bound(), Init(), inner_fission_2(), Inner_LB_Is_Outer_Index_Variable(), IPA_LNO_Read_Terms(), IPL_Build_Do_Access(), Is_Equal(), Is_Provably_In_Bounds(), Is_Similar(), is_vector_inconsistent(), is_vector_trivial(), Iterations(), Iters(), Lego_Index_From_Access_Vector(), LEGO_UGS::LEGO_UGS(), LNO_Build_Access(), LNO_Build_Do_Access(), LNO_Update_Indx_Range(), Loop_Has_Positive_Trip(), PF_LG::LR_Compare(), LINEX::Map_access_vector(), Merge(), Middle_Loop_Pwr2_Group_Hack(), Negate_Me(), Num_Iters(), Num_Lower_Bounds(), operator<(), operator==(), Outer_LB_GE_Inner_UB(), Perfect_Nested_Outer_Loop(), PF_LG::PF_LG(), PF_UGS::PF_UGS(), Print(), Print_Analysis_Info(), DISTRIBUTION::Process_Memory(), KERNEL_IMAGE::Project(), PF_LG::Ref_In_LG(), REGION::Region_Projection(), Register_Name_To_Statement(), Set(), ACCESS_ARRAY::Set_Array(), Set_Condition(), DO_LOOP_INFO::Set_Est_Num_Iterations(), ACCESS_ARRAY::Set_LB_r(), DEPV_COMPUTE::Set_Step(), AXLE_NODE::Set_To_Kernel_Image(), ACCESS_ARRAY::Set_UB_r(), Simd_Finalize_Loops(), DEPV_COMPUTE::Simple_Gcd_Indep(), Simplify_Coeff_Access_Vector(), Single_Loop_Coeff(), SNL_Finalize_Loops(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), SNL_Peel_Iteration(), Soe_Implies_Access_Vector(), Subtract(), Trip_Reduce_Loop(), Trip_Reducible_Loop(), DEPV_COMPUTE::Trivial_Test(), ARRAY_REF_LIST::Unroll(), V3geLB_Implies_V3geUB(), V3leUB_Implies_V3leLB(), Walk_Linex(), and Wn_To_Access_Vector().
Definition at line 976 of file access_vector.h.
Referenced by ACCESS_VECTOR(), Access_vector_is_too_messy(), PF_UGS::Add_Ref(), PF_BASE_ARRAY::Add_Ref(), LOOPINFO::Build_linex(), DEPV_COMPUTE::Compute(), Init(), Lego_Simplify(), operator==(), Print(), REGION::REGION(), Set(), and Variant_Array().
1.5.6