#include <stdint.h>#include <sys/types.h>#include <limits.h>#include "pu_info.h"#include "ara_region.h"#include "ara_loop.h"#include "wn_map.h"#include "lnopt_main.h"#include "lno_bv.h"#include "ara_utils.h"#include "mempool.h"#include "ipa_lno_util.h"

Go to the source code of this file.
Defines | |
| #define | __STDC_LIMIT_MACROS |
Enumerations | |
| enum | ARA_ACT_TYPE { ARA_LO_BD, ARA_UP_BD, ARA_EQN } |
Functions/Subroutines | |
| BOOL | Equivalent (const AXLE_NODE &a, const AXLE_NODE &b, const INT dim) |
| BOOL | Equivalent (const CON_PAIR &a, const CON_PAIR &b, const INT dim) |
| INT | Find_Non_Const_Loops (const SYMBOL &x, const ARA_LOOP_INFO &ara_loop_info) |
| INT | Locate_Sym (SYMBOL_LIST *syms, const SYMBOL &x, SYSTEM_OF_EQUATIONS *soe, INT_ST &non_const_loops, const ARA_LOOP_INFO &ara_loop_info) |
| void | Add_Access (ACCESS_VECTOR *av, const INT32 coeff[], SYSTEM_OF_EQUATIONS *soes, SYMBOL_LIST *syms, INT_ST &non_const_loops, const mUINT16 depth, const INT num_dim, const INT axle, const ARA_ACT_TYPE act, const ARA_LOOP_INFO &ara_info, BOOL ignore_sym=FALSE) |
| void | Add_Bound (ACCESS_VECTOR *av, SYSTEM_OF_EQUATIONS *soes, SYMBOL_LIST *syms, INT_ST &non_const_loops, const mUINT16 depth, const INT num_dim, const ARA_LOOP_INFO &ara_info) |
| void | Add_To_SOE (const REGION &a, const INT pos, SYSTEM_OF_EQUATIONS *soe, SYMBOL_LIST *syms, INT_ST &non_const_loops, const BOOL convert_equation, const ARA_LOOP_INFO &ara_info) |
| BOOL | is_equality (const SYSTEM_OF_EQUATIONS *soe, const INT i, const INT j) |
| INT | Max_Non_Const_Loop (const SYSTEM_OF_EQUATIONS *soe, const INT i, const INT offset, const INT which_array, const INT_ST &non_const_loops) |
| REGION * | Region_Intersect (const REGION &a, const REGION &b, const ARA_LOOP_INFO &ara_info) |
| INT | Region_Compare (const REGION &a, const REGION &b, const ARA_LOOP_INFO &ara_info) |
| REGION * | Region_Union (const REGION &a, const REGION &b, const ARA_LOOP_INFO &ara_info) |
| REGION_UN * | RegionUN_Intersect (const REGION_UN &a, const REGION_UN &b, ARA_LOOP_INFO &ara_info) |
| REGION_UN * | RegionUN_Union (const REGION_UN &a, const REGION_UN &b, const ARA_LOOP_INFO &ara_info) |
| BOOL | RegionUN_LE (const REGION_UN &a, const REGION_UN &b, const ARA_LOOP_INFO &ara_info) |
| BOOL | RegionUN_EQ (const REGION_UN &a, const REGION_UN &b, const ARA_LOOP_INFO &ara_info) |
| #define __STDC_LIMIT_MACROS |
Definition at line 42 of file ara_region.cxx.
| enum ARA_ACT_TYPE |
| void Add_Access | ( | ACCESS_VECTOR * | av, | |
| const INT32 | coeff[], | |||
| SYSTEM_OF_EQUATIONS * | soes, | |||
| SYMBOL_LIST * | syms, | |||
| INT_ST & | non_const_loops, | |||
| const mUINT16 | depth, | |||
| const INT | num_dim, | |||
| const INT | axle, | |||
| const ARA_ACT_TYPE | act, | |||
| const ARA_LOOP_INFO & | ara_info, | |||
| BOOL | ignore_sym = FALSE | |||
| ) |
Definition at line 688 of file ara_region.cxx.
References SYSTEM_OF_EQUATIONS::Add_Eq(), SYSTEM_OF_EQUATIONS::Add_Le(), ARA_EQN, ARA_LO_BD, bzero(), c, ACCESS_VECTOR::Const_Offset, ACCESS_VECTOR::Contains_Lin_Symb(), cur, CXX_DELETE_ARRAY, CXX_NEW_ARRAY, SLIST_ITER::First(), fprintf(), Get_Trace(), i, INT, SLIST_ITER::Is_Empty(), Is_True, iter, SLIST::Len(), ACCESS_VECTOR::Lin_Symb, LNO_local_pool, Locate_Sym(), ACCESS_VECTOR::Loop_Coeff(), mINT32, SLIST_ITER::Next(), NULL, pos(), SYSTEM_OF_EQUATIONS::Print(), ACCESS_VECTOR::Print(), ACCESS_VECTOR::Too_Messy, TP_LNOPT2, and TT_LNO_ARA_DEBUG.
Referenced by Add_To_SOE(), KERNEL_IMAGE::Project(), and Region_Intersect().
| void Add_Bound | ( | ACCESS_VECTOR * | av, | |
| SYSTEM_OF_EQUATIONS * | soes, | |||
| SYMBOL_LIST * | syms, | |||
| INT_ST & | non_const_loops, | |||
| const mUINT16 | depth, | |||
| const INT | num_dim, | |||
| const ARA_LOOP_INFO & | ara_info | |||
| ) |
Definition at line 781 of file ara_region.cxx.
References SYSTEM_OF_EQUATIONS::Add_Le(), bzero(), c, ACCESS_VECTOR::Const_Offset, ACCESS_VECTOR::Contains_Lin_Symb(), cur, CXX_DELETE_ARRAY, CXX_NEW_ARRAY, SLIST_ITER::First(), fprintf(), Get_Trace(), i, INT, SLIST_ITER::Is_Empty(), iter, SLIST::Len(), ACCESS_VECTOR::Lin_Symb, LNO_local_pool, Locate_Sym(), ACCESS_VECTOR::Loop_Coeff(), mINT32, SLIST_ITER::Next(), pos(), SYSTEM_OF_EQUATIONS::Print(), ACCESS_VECTOR::Print(), TP_LNOPT2, and TT_LNO_ARA_DEBUG.
Referenced by KERNEL_IMAGE::Project().
| void Add_To_SOE | ( | const REGION & | a, | |
| const INT | pos, | |||
| SYSTEM_OF_EQUATIONS * | soe, | |||
| SYMBOL_LIST * | syms, | |||
| INT_ST & | non_const_loops, | |||
| const BOOL | convert_equation, | |||
| const ARA_LOOP_INFO & | ara_info | |||
| ) |
Definition at line 846 of file ara_region.cxx.
References CON_PAIR::_ac_v, REGION::_axle, CON_PAIR::_coeff, REGION::_depth, REGION::_dim, Add_Access(), ARA_EQN, ARA_LO_BD, ARA_UP_BD, AXLE_NODE::lo, NULL, and AXLE_NODE::up.
Referenced by KERNEL_IMAGE::Project().
Definition at line 498 of file ara_region.cxx.
References CON_PAIR::_ac_v, CON_PAIR::_coeff, FALSE, i, INT, NULL, and TRUE.
Definition at line 484 of file ara_region.cxx.
References AXLE_NODE::Equivalent, AXLE_NODE::lo, NULL, AXLE_NODE::step, and AXLE_NODE::up.
| INT Find_Non_Const_Loops | ( | const SYMBOL & | x, | |
| const ARA_LOOP_INFO & | ara_loop_info | |||
| ) |
Definition at line 639 of file ara_region.cxx.
References ARA_LOOP_INFO::Depth(), ARA_LOOP_INFO::Is_Invariant(), and ARA_LOOP_INFO::Parent().
Referenced by Locate_Sym().
| BOOL is_equality | ( | const SYSTEM_OF_EQUATIONS * | soe, | |
| const INT | i, | |||
| const INT | j | |||
| ) |
Definition at line 876 of file ara_region.cxx.
References FALSE, INT, SYSTEM_OF_EQUATIONS::Num_Vars(), SYSTEM_OF_EQUATIONS::Work(), and SYSTEM_OF_EQUATIONS::Work_Const().
| INT Locate_Sym | ( | SYMBOL_LIST * | syms, | |
| const SYMBOL & | x, | |||
| SYSTEM_OF_EQUATIONS * | soe, | |||
| INT_ST & | non_const_loops, | |||
| const ARA_LOOP_INFO & | ara_loop_info | |||
| ) |
Definition at line 653 of file ara_region.cxx.
References SYSTEM_OF_EQUATIONS::Add_Vars(), SLIST::Append(), CXX_NEW, FALSE, Find_Non_Const_Loops(), SLIST_ITER::First(), INT, SLIST_ITER::Is_Empty(), iter, LNO_local_pool, SLIST_ITER::Next(), STACK< T >::Push(), and s.
Referenced by Add_Access(), and Add_Bound().
| INT Max_Non_Const_Loop | ( | const SYSTEM_OF_EQUATIONS * | soe, | |
| const INT | i, | |||
| const INT | offset, | |||
| const INT | which_array, | |||
| const INT_ST & | non_const_loops | |||
| ) |
Definition at line 887 of file ara_region.cxx.
References SYSTEM_OF_EQUATIONS::Aeq(), SYSTEM_OF_EQUATIONS::Ale(), STACK< T >::Bottom_nth(), STACK< T >::Elements(), FmtAssert, INT, MAX, and SYSTEM_OF_EQUATIONS::Work().
Referenced by AXLE_NODE::Set_Axle(), AXLE_NODE::Set_Axle_Eq(), and AXLE_NODE::Set_Axle_Le().
| INT Region_Compare | ( | const REGION & | a, | |
| const REGION & | b, | |||
| const ARA_LOOP_INFO & | ara_info | |||
| ) |
Definition at line 1586 of file ara_region.cxx.
References REGION::_axle, REGION::_depth, REGION::_dim, REGION::_kernel, REGION::_type, REGION::Add_To_SOE, ARA_BOTTOM, ARA_TOO_MESSY, ARA_TOP, BOOL, SYSTEM_OF_EQUATIONS::Copy_To_Work(), CXX_NEW, CXX_NEW_ARRAY, Equivalent(), FALSE, i, INT, INT16, LNO_local_pool, AXLE_NODE::lo, MEM_POOL_Pop, MEM_POOL_Push, NULL, SYSTEM_OF_EQUATIONS::Prove_Redundant(), result, SYSTEM_OF_EQUATIONS::Simple_Redundant(), TRUE, and AXLE_NODE::up.
Referenced by Compare_Cache_Regions(), and Is_Subset_Region().
| REGION* Region_Intersect | ( | const REGION & | a, | |
| const REGION & | b, | |||
| const ARA_LOOP_INFO & | ara_info | |||
| ) |
Definition at line 1254 of file ara_region.cxx.
References CON_PAIR::_ac_v, REGION::_axle, CON_PAIR::_coeff, REGION::_depth, REGION::_dim, REGION::_type, REGION::_wn_list, abs, Add_Access(), SYSTEM_OF_EQUATIONS::Add_Work_Le(), SYSTEM_OF_EQUATIONS::Ale(), ARA_BOTTOM, ARA_LO_BD, ARA_memory_pool, ARA_TOP, ARA_UP_BD, SYSTEM_OF_EQUATIONS::Ble(), BOOL, STACK< T >::Bottom_nth(), MAT< T >::Cols(), SYSTEM_OF_EQUATIONS::Copy_To_Work(), CXX_DELETE, CXX_DELETE_ARRAY, CXX_NEW, CXX_NEW_ARRAY, STACK< T >::Elements(), SYSTEM_OF_EQUATIONS::Elim_Simple_Redundant(), Equivalent(), FALSE, FmtAssert, g, Gcd(), i, INT, INT32, INT64, SYSTEM_OF_EQUATIONS::Is_Consistent_Work(), Is_True, LNO_local_pool, AXLE_NODE::lo, SYSTEM_OF_EQUATIONS::Mark_Redundant(), MAX, MEM_POOL_Pop, MEM_POOL_Push, MIN, NULL, SYSTEM_OF_EQUATIONS::Num_Le_Constraints(), STACK< T >::Push(), REGION::REGION(), SYSTEM_OF_EQUATIONS::Remove_Last_Le(), SYSTEM_OF_EQUATIONS::Remove_Le_Number(), result, MAT< T >::Rows(), REGION::Set_Region(), SYSTEM_OF_EQUATIONS::Sort_Le(), AXLE_NODE::step, AXLE_NODE::up, SYSTEM_OF_EQUATIONS::Work(), and SYSTEM_OF_EQUATIONS::Work_Constraints().
Referenced by Are_Independent_Regions(), CACHE_REGION::Intersect_Region(), and RegionUN_Intersect().
| REGION* Region_Union | ( | const REGION & | a, | |
| const REGION & | b, | |||
| const ARA_LOOP_INFO & | ara_info | |||
| ) |
Definition at line 1711 of file ara_region.cxx.
References REGION::_axle, REGION::_depth, REGION::_dim, REGION::_type, REGION::_wn_list, REGION::Add_To_SOE, ARA_BOTTOM, ARA_memory_pool, ARA_TOO_MESSY, ARA_TOP, SYSTEM_OF_EQUATIONS::Ble(), BOOL, STACK< T >::Bottom_nth(), SYSTEM_OF_EQUATIONS::Copy_To_Work(), CXX_NEW, CXX_NEW_ARRAY, STACK< T >::Elements(), Equivalent(), fprintf(), Get_Trace(), i, INT, INT64, SYSTEM_OF_EQUATIONS::Is_Consistent(), Is_True, LNO_local_pool, AXLE_NODE::lo, SYSTEM_OF_EQUATIONS::Mark_New_Redundant(), SYSTEM_OF_EQUATIONS::Mark_Simple_Redundant(), MAX, MEM_POOL_Pop, MEM_POOL_Push, NULL, SYSTEM_OF_EQUATIONS::Num_Le_Constraints(), pos(), REGION::Print(), STACK< T >::Push(), REGION::REGION(), result, AXLE_NODE::Set_Axle(), AXLE_NODE::step, step(), TP_LNOPT2, TRUE, TT_LNO_ARA_DEBUG, and AXLE_NODE::up.
Referenced by REGION_UN::Add_Region(), and Merge_Regions().
| BOOL RegionUN_EQ | ( | const REGION_UN & | a, | |
| const REGION_UN & | b, | |||
| const ARA_LOOP_INFO & | ara_info | |||
| ) |
| REGION_UN* RegionUN_Intersect | ( | const REGION_UN & | a, | |
| const REGION_UN & | b, | |||
| ARA_LOOP_INFO & | ara_info | |||
| ) |
Definition at line 2255 of file ara_region.cxx.
References REGION_UN::Add_Region(), ARA_memory_pool, CXX_NEW, SLIST_ITER::First(), SLIST_ITER::Is_Empty(), SLIST_ITER::Next(), NULL, Region_Intersect(), and result.
| BOOL RegionUN_LE | ( | const REGION_UN & | a, | |
| const REGION_UN & | b, | |||
| const ARA_LOOP_INFO & | ara_info | |||
| ) |
Definition at line 2289 of file ara_region.cxx.
| REGION_UN* RegionUN_Union | ( | const REGION_UN & | a, | |
| const REGION_UN & | b, | |||
| const ARA_LOOP_INFO & | ara_info | |||
| ) |
Definition at line 2272 of file ara_region.cxx.
References REGION_UN::Add_Region(), ARA_memory_pool, CXX_NEW, SLIST_ITER::First(), SLIST_ITER::Is_Empty(), SLIST_ITER::Next(), and result.
1.5.6