ACCESS_ARRAY Module Reference

#include <access_vector.h>

Collaboration diagram for ACCESS_ARRAY:

Collaboration graph
[legend]

Public Member Functions

mUINT16 Num_Vec () const
ACCESS_VECTORDim (UINT16 i) const
 ACCESS_ARRAY (UINT16 num_vec, UINT16 nest_depth, MEM_POOL *mem_pool)
 ACCESS_ARRAY (UINT16 num_vec, ACCESS_VECTOR *dim[], MEM_POOL *mem_pool)
void Print (FILE *fp, BOOL is_bound=FALSE) const __attribute__((weak))
 ACCESS_ARRAY ()
 ACCESS_ARRAY (const ACCESS_ARRAY *a, MEM_POOL *pool)
mUINT16 Non_Const_Loops () const
void Set_Array (WN *wn, DOLOOP_STACK *stack)
void Set_LB (WN *wn, DOLOOP_STACK *stack, INT64 step)
void Set_UB (WN *wn, DOLOOP_STACK *stack)
void Init (const ACCESS_ARRAY *a, MEM_POOL *pool)
 ~ACCESS_ARRAY ()
MEM_POOLPool () const
BOOL operator== (const ACCESS_ARRAY &a) const
INT Set_IF (WN *wn, DOLOOP_STACK *stack, BOOL negate, BOOL is_and, INT i)
void Substitute (INT formal_number, WN *wn_sub, DOLOOP_STACK *stack, BOOL allow_nonlinear=FALSE)
BOOL Has_Formal_Parameter ()

Data Fields

BOOL Too_Messy

Private Member Functions

 ACCESS_ARRAY (const ACCESS_ARRAY &)
ACCESS_ARRAYoperator= (const ACCESS_ARRAY &)
INT Set_UB_r (WN *wn, DOLOOP_STACK *stack, INT i, INT sign)
INT Set_LB_r (WN *wn, DOLOOP_STACK *stack, INT i, INT64 step)
void Update_Non_Const_Loops (WN *wn, DOLOOP_STACK *stack)

Private Attributes

ACCESS_VECTOR_dim
MEM_POOL_mem_pool
mUINT16 _num_vec

Detailed Description

Definition at line 1050 of file access_vector.h.


Constructor & Destructor Documentation

ACCESS_ARRAY::ACCESS_ARRAY ( const ACCESS_ARRAY  )  [inline, private]

Definition at line 1054 of file access_vector.h.

ACCESS_ARRAY::ACCESS_ARRAY ( UINT16  num_vec,
UINT16  nest_depth,
MEM_POOL mem_pool = 0 
)

Definition at line 473 of file access_vector.cxx.

References _dim, _mem_pool, _num_vec, CXX_NEW_ARRAY, ACCESS_VECTOR::Init(), INT32, Too_Messy, and TRUE.

ACCESS_ARRAY::ACCESS_ARRAY ( UINT16  num_vec,
ACCESS_VECTOR dim[],
MEM_POOL mem_pool = 0 
)

Definition at line 461 of file access_vector.cxx.

References _dim, _mem_pool, _num_vec, CXX_NEW_ARRAY, ACCESS_VECTOR::Init(), INT32, Too_Messy, and TRUE.

ACCESS_ARRAY::ACCESS_ARRAY (  )  [inline]

Definition at line 1068 of file access_vector.h.

References _dim, _num_vec, NULL, Too_Messy, and TRUE.

ACCESS_ARRAY::ACCESS_ARRAY ( const ACCESS_ARRAY a,
MEM_POOL pool 
)

Definition at line 358 of file access_vector.cxx.

References _dim, Init(), and NULL.

ACCESS_ARRAY::~ACCESS_ARRAY (  )  [inline]

Definition at line 1075 of file access_vector.h.

References _dim, _mem_pool, and CXX_DELETE_ARRAY.


Member Function/Subroutine Documentation

ACCESS_ARRAY& ACCESS_ARRAY::operator= ( const ACCESS_ARRAY  )  [private]

mUINT16 ACCESS_ARRAY::Num_Vec (  )  const [inline]

Definition at line 1058 of file access_vector.h.

References _num_vec.

Referenced by _xcreate_simple_basic_shackle(), _xdependence_is_preserved(), _xis_avect_linear_comb_amat_queue(), Access_Trip_Count(), Access_Vector_Condition_Provable(), COND_BOUNDS_INFO::Add_Access(), SNL_BOUNDS_INFO::Add_Access(), PF_LG::Add_Group(), Add_Parent_If_Constraints(), Add_Parent_Loop_Constraints(), PF_LG::Add_Ref(), PF_UGS::Add_Ref(), PF_LOOPNODE::Add_Ref(), PF_BASE_ARRAY::Add_Ref(), Bound_Is_Too_Messy(), ARA_LOOP_INFO::Bounds_Depend_On_Index(), BS_Is_Linearized(), ARRAY_REF::Build_Array(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl_Array(), Cache_Line_Edge_Reuse(), ARRAY_REF_LIST::Calc_Regs_And_Refs(), SNL_BOUNDS_INFO::Collect_If_Info(), COND_BOUNDS_INFO::Collect_If_Info(), DEPV_COMPUTE::Compute(), PF_UGS::ComputePFVec(), COND_Do_Info(), ARRAY_REF::Conflict_Refs(), ARRAY_REF_LIST::Conflict_Refs(), SNL_ANAL_INFO::CONST_BOUNDS_INFO::CONST_BOUNDS_INFO(), Convex_Peeling_Depth(), copy_access_array_from_src2dst(), DEPV_COMPUTE::Copy_Bounds_To_Work(), Cse_Or_Dup(), determine_if_sinkable_in_do(), PF_LG::Distance_LR(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), Est_Num_Iters_Suspect(), Exact_Iteration_Count(), fast_fuse_check_ok(), Find_Average(), First_Invariant_Depth(), Fuse_Test(), PF_LG::Gen_Pref_Node(), Has_Reuse(), Highest_Guard_Point(), Identify_Messy_Array_Subscript(), inner_fission_2(), Inner_LB_Is_Outer_Index_Variable(), Inner_LB_Outer_IV_Offset(), RG::Insert(), Interferes_With_Symbolic_Bound(), intrinsic_operand_kind(), Invariant_Red_Depth(), PAR_STAT::Invariant_Reduction(), IPL_Build_Do_Access(), Is_Bad_Array(), Is_Invariant(), Is_Outer_Tile(), is_promotion_case(), is_vector_inconsistent(), is_vector_trivial(), Iters(), KERNEL_IMAGE::KERNEL_IMAGE(), Lego_Simplify(), Lego_Update_Skew_Count(), LNO_Build_Do_Access(), Loop_Has_Positive_Trip(), Loop_Invariant_Access(), Loop_Invariant_Inside(), PF_LG::LR_Compare(), Mark_Indexed_References(), ARRAY_REF_LIST::Mark_Invariants(), Mark_used_formal_symbols(), Messy_Subscript(), Middle_Loop_Pwr2_Group_Hack(), MIR_Build_Loop_List_Array(), MIR_Hoistable_Ref(), Num_Iters(), operator<(), Outer_LB_GE_Inner_UB(), Peelable(), PF_LG::PF_LG(), PF_UGS::PF_UGS(), Post_Peel_Map_Refs(), Pre_Peel_Map_Refs(), process_array_node(), Process_Load(), DISTRIBUTION::Process_Memory(), KERNEL_IMAGE::Project(), PROJECTED_REGION::PROJECTED_REGION(), Recursively_Add_Array_Lin_Symbols(), Recursively_Add_Bound_Lin_Symbols(), Recursively_Add_Parent_If_Lin_Symbols(), Redundant_Condition(), Ref_Contains_Reuse_For_Loop(), PF_LG::Ref_In_LG(), Ref_Is_Significant(), REGION::REGION(), Register_Name_To_Statement(), ARRAY_REF_LIST::Remove_Invariants(), Remove_Redundant_And_Inconsistent_If(), RG::RG(), RR_Map_Refs(), Safe_Depth(), DEPV_COMPUTE::Same_Monotonic(), Same_Ug(), SE_Safe_Depth(), DO_LOOP_INFO::Set_Est_Num_Iterations(), Set_Indexed_Loop_Bounds(), Set_LB(), Set_UB(), Shackle_Do_Depth_For_If(), Shackleable_Ifs_Surrounding_Stmt(), Simd_Align_Analysis(), Simd_Handle_Negative_Coefficient(), simd_operand_kind(), Simd_Unroll_Statement(), DEPV_COMPUTE::Simple_Gcd_Indep(), Sink_If2do(), SNL_Bound_Worth_Optimizing(), SNL_Finalize_Loops(), SNL_Is_Invariant(), SNL_Is_Non_Varying_Access_Array(), SNL_LB_Worth_Optimizing(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), SNL_Peel_Iteration(), SNL_UB_Worth_Optimizing(), Stride_One_Level(), Substitute(), Trip_Reduce_Loop(), Trip_Reducible_Loop(), DEPV_COMPUTE::Trivial_Test(), Unit_Stride_Reference(), ARRAY_REF_LIST::Unroll(), Update_Nest_Depth_Traverse(), Variant_Array(), Varying_Load(), Vintrinsic_Fission(), PF_LG::Volume(), and Weird_Triangular().

ACCESS_VECTOR* ACCESS_ARRAY::Dim ( UINT16  i  )  const [inline]

Definition at line 1060 of file access_vector.h.

References _dim, _num_vec, and Is_True.

Referenced by _xdependence_is_preserved(), _xis_avect_linear_comb_amat_queue(), Access_Trip_Count(), Access_Vector_Condition_Provable(), COND_BOUNDS_INFO::Add_Access(), SNL_BOUNDS_INFO::Add_Access(), PF_LG::Add_Group(), Add_Parent_If_Constraints(), Add_Parent_Loop_Constraints(), PF_LG::Add_Ref(), PF_UGS::Add_Ref(), PF_LOOPNODE::Add_Ref(), LEGO_UGS::Add_Ref(), PF_BASE_ARRAY::Add_Ref(), Always_Executes(), ARRAY_REF_NODE::ARRAY_REF_NODE(), Bound_Is_Too_Messy(), ARA_LOOP_INFO::Bounds_Depend_On_Index(), BS_Is_Linearized(), ARRAY_REF::Build_Array(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl_Array(), Cache_Line_Edge_Reuse(), ARRAY_REF_LIST::Calc_Regs_And_Refs(), SNL_BOUNDS_INFO::Collect_If_Info(), COND_BOUNDS_INFO::Collect_If_Info(), DEPV_COMPUTE::Compute(), LEGO_UGS::Compute_Offset(), PF_UGS::ComputePFVec(), COND_Do_Info(), ARRAY_REF_LIST::Conflict_Refs(), SNL_ANAL_INFO::CONST_BOUNDS_INFO::CONST_BOUNDS_INFO(), Convex_Peeling_Depth(), copy_access_array_from_src2dst(), DEPV_COMPUTE::Copy_Bounds_To_Work(), DEPV_COMPUTE::Copy_Call_Ref_To_Work(), DEPV_COMPUTE::Copy_Equals_To_Work(), Create_Dummy_Access_Array(), Cse_Or_Dup(), determine_if_sinkable_in_do(), PF_LG::Distance_LR(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), ARRAY_REF::Enter_Innermost_Scalar_Expand(), ARRAY_REF::Enter_Scalar_Expand(), Est_Num_Iters_Suspect(), Exact_Iteration_Count(), fast_fuse_check_ok(), Fill_Constant_Array(), Find_Average(), First_Invariant_Depth(), Fuse_Test(), PF_LG::Gen_Pref_Node(), ARRAY_LOWER_REF::Get_Ref_Loop(), Has_Formal_Parameter(), Has_Reuse(), Highest_Guard_Point(), Init(), 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_Create_Dummy_Access_Array(), IPL_Build_Do_Access(), Is_Bad_Array(), Is_Invariant(), Is_Outer_Tile(), is_promotion_case(), Is_Provably_In_Bounds(), is_vector_inconsistent(), is_vector_trivial(), Iterations(), Iters(), KERNEL_IMAGE::KERNEL_IMAGE(), Lego_Simplify(), LEGO_UGS::LEGO_UGS(), Lego_Update_Skew_Count(), ARRAY_REF_NODE::Lexically_Before(), LNO_Build_Do_Access(), LNO_Update_Indx_Range(), Loop_Has_Positive_Trip(), Loop_Invariant_Access(), Loop_Invariant_Inside(), PF_LG::LR_Compare(), Mark_Indexed_References(), ARRAY_REF_LIST::Mark_Invariants(), Mark_used_formal_symbols(), Messy_Subscript(), Middle_Loop_Pwr2_Group_Hack(), MIR_Build_Loop_List_Array(), MIR_Hoistable_Ref(), Non_Const_Loops(), Num_Iters(), operator<(), operator==(), Outer_LB_GE_Inner_UB(), Peelable(), PF_LG::PF_LG(), PF_UGS::PF_UGS(), Post_Peel_Map_Refs(), Pre_Peel_Map_Refs(), Print(), Process_Load(), DISTRIBUTION::Process_Memory(), KERNEL_IMAGE::Project(), PROJECTED_REGION::PROJECTED_REGION(), Recursively_Add_Array_Lin_Symbols(), Recursively_Add_Bound_Lin_Symbols(), Recursively_Add_Parent_If_Lin_Symbols(), Redundant_Condition(), Ref_Contains_Reuse_For_Loop(), PF_LG::Ref_In_LG(), Ref_Is_Significant(), REGION::REGION(), REGION::Region_Projection(), Register_Name_To_Statement(), ARRAY_REF_LIST::Remove_Invariants(), Remove_Redundant_And_Inconsistent_If(), RG::RG(), RR_Map_Refs(), Safe_Depth(), DEPV_COMPUTE::Same_Monotonic(), Same_Ug(), SE_Safe_Depth(), Set_Array(), DO_LOOP_INFO::Set_Est_Num_Iterations(), Set_Indexed_Loop_Bounds(), Shackle_Do_Depth_For_If(), Shackleable_Ifs_Surrounding_Stmt(), Simd_Align_Analysis(), Simd_Handle_Negative_Coefficient(), simd_operand_kind(), Simd_Unroll_Statement(), DEPV_COMPUTE::Simple_Gcd_Indep(), Sink_If2do(), SNL_Bound_Worth_Optimizing(), SNL_Finalize_Loops(), SNL_Is_Invariant(), SNL_Is_Non_Varying_Access_Array(), SNL_LB_Worth_Optimizing(), SNL_NEST_INFO::SNL_NEST_INFO(), SNL_Optimize_LB_With_Access_Vectors(), SNL_Optimize_UB_With_Access_Vectors(), SNL_Peel_Iteration(), SNL_UB_Worth_Optimizing(), Stride_One_Level(), Substitute(), Trip_Reduce_Loop(), Trip_Reducible_Loop(), DEPV_COMPUTE::Trivial_Test(), Unit_Stride_Reference(), ARRAY_REF_LIST::Unroll(), Update_Nest_Depth_Traverse(), Update_Non_Const_Loops(), Variant_Array(), Varying_Load(), Vintrinsic_Fission(), PF_LG::Volume(), and Weird_Triangular().

void ACCESS_ARRAY::Print ( FILE fp,
BOOL  is_bound = FALSE 
) const

mUINT16 ACCESS_ARRAY::Non_Const_Loops (  )  const

void ACCESS_ARRAY::Set_Array ( WN wn,
DOLOOP_STACK stack 
)

void ACCESS_ARRAY::Set_LB ( WN wn,
DOLOOP_STACK stack,
INT64  step 
)

void ACCESS_ARRAY::Set_UB ( WN wn,
DOLOOP_STACK stack 
)

void ACCESS_ARRAY::Init ( const ACCESS_ARRAY a,
MEM_POOL pool 
)

MEM_POOL* ACCESS_ARRAY::Pool (  )  const [inline]

BOOL ACCESS_ARRAY::operator== ( const ACCESS_ARRAY a  )  const

Definition at line 501 of file access_vector.cxx.

References _num_vec, Dim(), FALSE, INT32, Too_Messy, and TRUE.

INT ACCESS_ARRAY::Set_IF ( WN wn,
DOLOOP_STACK stack,
BOOL  negate,
BOOL  is_and,
INT  i 
)

void ACCESS_ARRAY::Substitute ( INT  formal_number,
WN wn_sub,
DOLOOP_STACK stack,
BOOL  allow_nonlinear = FALSE 
)

Definition at line 450 of file access_vector.cxx.

References Dim(), INT, Num_Vec(), ACCESS_VECTOR::Substitute(), and Too_Messy.

BOOL ACCESS_ARRAY::Has_Formal_Parameter (  ) 

Definition at line 364 of file access_vector.cxx.

References _num_vec, Dim(), FALSE, INT, Too_Messy, and TRUE.

INT ACCESS_ARRAY::Set_UB_r ( WN wn,
DOLOOP_STACK stack,
INT  i,
INT  sign 
) [private]

INT ACCESS_ARRAY::Set_LB_r ( WN wn,
DOLOOP_STACK stack,
INT  i,
INT64  step 
) [private]

void ACCESS_ARRAY::Update_Non_Const_Loops ( WN wn,
DOLOOP_STACK stack 
) [private]


Field Documentation

Definition at line 1052 of file access_vector.h.

Referenced by ACCESS_ARRAY(), Init(), Pool(), and ~ACCESS_ARRAY().

Definition at line 1057 of file access_vector.h.

Referenced by _xcreate_simple_basic_shackle(), ACCESS_ARRAY(), PF_LOOPNODE::Add_Ref(), Bound_Is_Too_Messy(), ARA_LOOP_INFO::Bounds_Depend_On_Index(), ARRAY_REF::Build_Array(), TRANSPOSE_DIRECTED_GRAPH16::Build_Snl_Array(), ARRAY_REF_LIST::Calc_Regs_And_Refs(), DEPV_COMPUTE::Compute(), COND_Do_Info(), SNL_ANAL_INFO::CONST_BOUNDS_INFO::CONST_BOUNDS_INFO(), DEPV_COMPUTE::Copy_Call_Ref_To_Work(), Create_Dummy_Access_Array(), Cse_Or_Dup(), Do_Loop_Explicit_Affinity(), Do_Loop_Implicit_Affinity(), ARRAY_REF::Enter_Innermost_Scalar_Expand(), ARRAY_REF::Enter_Scalar_Expand(), Find_Average(), find_loop_var_in_simple_ub(), Fuse_Outer_Loops(), Has_Formal_Parameter(), Has_Reuse(), Highest_Guard_Point(), Init(), intrinsic_operand_kind(), IPA_LNO_Create_Dummy_Access_Array(), IPA_LNO_Read_Projected_Region(), IPL_Build_Do_Access(), Is_Bad_Array(), Is_Invariant(), Is_Ref_Significant_In_Stmt(), Lego_Simplify(), Lego_Update_Skew_Count(), LNO_Build_Do_Access(), LNO_Update_Indx_Range(), LWN_Process_FF_Pragmas_Walk_r(), Mark_used_formal_symbols(), Messy_Subscript(), MIR_Build_Loop_List_Array(), operator<(), operator==(), Print(), Process_Load(), DISTRIBUTION::Process_Memory(), PROJECTED_REGION::PROJECTED_REGION(), Ref_Contains_Reuse_For_Loop(), REGION::REGION(), Remove_Redundant_And_Inconsistent_If(), Set_Array(), DO_LOOP_INFO::Set_Est_Num_Iterations(), Set_IF(), Set_Indexed_Loop_Bounds(), Set_LB(), Set_UB(), Shackle_Do_Depth_For_If(), Shackleable_Ifs_Surrounding_Stmt(), simd_operand_kind(), Sink_If2do(), SNL_SPL_Fix_Second_Outer_Loop_Limits(), Stride_One_Level(), Substitute(), ARRAY_REF_LIST::Unroll(), Variant_Array(), Varying_Load(), and Wind_Down().


The documentation for this module was generated from the following files:

Generated on Wed Apr 8 16:22:57 2009 for Open64 by  doxygen 1.5.6