osprey/be/lno/ff_utils.h File Reference

#include "wn_core.h"
#include "name.h"
#include "dep_graph.h"
#include "lwn_util.h"
#include "reduc.h"
#include "btree.h"
#include "lno_bv.h"

Include dependency graph for ff_utils.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#define Gather_Scalar_Refs   0x0001
#define Gather_Array_Refs   0x0002
#define Gather_Params   0x0004
#define Gather_Other_Refs   0x0008
#define Gather_Calls   0x0010
#define Gather_IOs   0x0020
#define Reset_Ref_Counter   0x1000

Typedefs

typedef STACK< SCALAR_REF > SCALAR_REF_STACK

Enumerations

enum  FISSION_FUSION_STATUS {
  Failed = 0, Succeeded = 1, Succeeded_and_Inner_Loop_Removed = 2, Partially_fused = 3,
  Try_Level_By_Level = 4
}

Functions/Subroutines

UINT Get_Stmt_For_Stmt_Dep_Graph (WN *source_wn, WN *sink_wn, WN **source_stmt_out, WN **sink_stmt_out)
INT Map_Stmt_To_Level_Graph (WN *wn, ARRAY_DIRECTED_GRAPH16 *sdg)
void toplogical_reordering (WN *loop, UINT depth, ARRAY_DIRECTED_GRAPH16 *adg)
BOOL Scalar_Variable_Renaming (WN *loop)
BOOL scalar_rename (WN *ref, HASH_TABLE< WN *, INT > *checked=NULL)
void Fission_DU_Update (DU_MANAGER *Du_Mgr, REDUCTION_MANAGER *Red_Mgr, WN **wn_starts, WN **wn_ends, WN **wn_steps, UINT total_loops, WN **loop, BOOL index_DU_to_first=FALSE)
INT Lexical_Order (WN *wn1, WN *wn2)
WNFind_SCF_Inside (WN *parent_wn, OPCODE opc)
void FF_Mark_Inner_Loop_Info (WN *loop)
void Init_Ref_Stmt_Counter ()
INT32 New_Gather_References (WN *wn, REF_LIST_STACK *writes, REF_LIST_STACK *reads, DOLOOP_STACK *stack, SCALAR_STACK *scalar_writes, SCALAR_STACK *scalar_reads, SCALAR_REF_STACK *params, MEM_POOL *pool, INT mode=Gather_Array_Refs|Gather_Scalar_Refs|Gather_Params)
BOOL Generate_Scalar_Dependence_For_Statement_Dependence_Graph (WN *in_loop, SCALAR_STACK *scalar_reads, SCALAR_STACK *scalar_writes, SCALAR_REF_STACK *params, ARRAY_DIRECTED_GRAPH16 *sdg, REDUCTION_MANAGER *Red_Mgr, BIT_VECTOR *Expandable_Scalar_Set=NULL, BINARY_TREE< NAME2BIT > *mapping_dictionary=NULL)
BOOL Generate_Array_Dependence_For_Statement_Dependence_Graph (WN *in_loop, REF_LIST_STACK *reads, REF_LIST_STACK *writes, ARRAY_DIRECTED_GRAPH16 *sdg, REDUCTION_MANAGER *Red_Mgr, ARRAY_DIRECTED_GRAPH16 *adg)
ARRAY_DIRECTED_GRAPH16Build_Statement_Dependence_Graph (WN *in_loop, REDUCTION_MANAGER *Red_Mgr, ARRAY_DIRECTED_GRAPH16 *adg, WN_MAP sdm, MEM_POOL *pool)
BOOL Edge_Is_Reduction_Dependence (EINDEX16 edge, ARRAY_DIRECTED_GRAPH16 *dg, REDUCTION_MANAGER *Red_Mgr)

Variables

ARRAY_DIRECTED_GRAPH16Statement_Dependence_Graph


Define Documentation

#define Gather_Array_Refs   0x0002

Definition at line 67 of file ff_utils.h.

Referenced by Check_Doacross_Sync_Coverage(), and New_Gather_References().

#define Gather_Calls   0x0010

Definition at line 70 of file ff_utils.h.

#define Gather_IOs   0x0020

Definition at line 71 of file ff_utils.h.

#define Gather_Other_Refs   0x0008

Definition at line 69 of file ff_utils.h.

#define Gather_Params   0x0004

#define Gather_Scalar_Refs   0x0001

Module: ff_utils.h $Revision$ $Date$ $Author$ $Source$

Description:

Bunch of utilities related to Fission and Fusion. To be described later.

Definition at line 66 of file ff_utils.h.

Referenced by Fission_DU_Update(), Fusion_Du_Update(), Fusion_Loop_Stmt_Update(), Loop_Stmt_Update(), New_Gather_References(), Scalar_Dependence_Prevent_Fusion(), and Scalar_Variable_Renaming().

#define Reset_Ref_Counter   0x1000

Definition at line 72 of file ff_utils.h.


Typedef Documentation

typedef STACK<SCALAR_REF> SCALAR_REF_STACK

Definition at line 84 of file ff_utils.h.


Enumeration Type Documentation

Enumerator:
Failed 
Succeeded 
Succeeded_and_Inner_Loop_Removed 
Partially_fused 
Try_Level_By_Level 

Definition at line 74 of file ff_utils.h.


Function Documentation

ARRAY_DIRECTED_GRAPH16* Build_Statement_Dependence_Graph ( WN in_loop,
REDUCTION_MANAGER Red_Mgr,
ARRAY_DIRECTED_GRAPH16 adg,
WN_MAP  sdm,
MEM_POOL pool 
)

BOOL Edge_Is_Reduction_Dependence ( EINDEX16  edge,
ARRAY_DIRECTED_GRAPH16 dg,
REDUCTION_MANAGER Red_Mgr 
)

void FF_Mark_Inner_Loop_Info ( WN loop  ) 

WN* Find_SCF_Inside ( WN parent_wn,
OPCODE  opc 
)

Definition at line 1086 of file ff_utils.cxx.

void Fission_DU_Update ( DU_MANAGER Du_Mgr,
REDUCTION_MANAGER Red_Mgr,
WN **  wn_starts,
WN **  wn_ends,
WN **  wn_steps,
UINT  total_loops,
WN **  loop,
BOOL  index_DU_to_first = FALSE 
)

BOOL Generate_Array_Dependence_For_Statement_Dependence_Graph ( WN in_loop,
REF_LIST_STACK *  reads,
REF_LIST_STACK *  writes,
ARRAY_DIRECTED_GRAPH16 sdg,
REDUCTION_MANAGER Red_Mgr,
ARRAY_DIRECTED_GRAPH16 adg 
)

BOOL Generate_Scalar_Dependence_For_Statement_Dependence_Graph ( WN in_loop,
SCALAR_STACK *  scalar_reads,
SCALAR_STACK *  scalar_writes,
SCALAR_REF_STACK params,
ARRAY_DIRECTED_GRAPH16 sdg,
REDUCTION_MANAGER Red_Mgr,
BIT_VECTOR Expandable_Scalar_Set = NULL,
BINARY_TREE< NAME2BIT > *  mapping_dictionary = NULL 
)

UINT Get_Stmt_For_Stmt_Dep_Graph ( WN source_wn,
WN sink_wn,
WN **  source_stmt_out,
WN **  sink_stmt_out 
)

void Init_Ref_Stmt_Counter (  ) 

INT Lexical_Order ( WN wn1,
WN wn2 
)

Definition at line 1060 of file ff_utils.cxx.

References Get_Stmt_For_Stmt_Dep_Graph(), and WN_next().

INT Map_Stmt_To_Level_Graph ( WN wn,
ARRAY_DIRECTED_GRAPH16 sdg 
)

INT32 New_Gather_References ( WN wn,
REF_LIST_STACK *  writes,
REF_LIST_STACK *  reads,
DOLOOP_STACK stack,
SCALAR_STACK *  scalar_writes,
SCALAR_STACK *  scalar_reads,
SCALAR_REF_STACK params,
MEM_POOL pool,
INT  mode = Gather_Array_Refs|Gather_Scalar_Refs|Gather_Params 
)

BOOL scalar_rename ( WN ref,
HASH_TABLE< WN *, INT > *  checked = NULL 
)

Definition at line 592 of file ff_utils.cxx.

References Alias_Mgr, Be_Type_Tbl, BOOL, Contains_MP, Create_alias(), Create_Preg_Symbol(), Du_Mgr, STACK< T >::Elements(), HASH_TABLE< SIG_TYPE, DATA_TYPE >::Enter(), FALSE, fprintf(), STACK< T >::Free(), Get_Trace(), i, INT, Is_Reduction_In_Prallel_Region(), LNO_local_pool, LNO_Verbose, LWN_CreateExp1(), LWN_Get_Parent, LWN_Set_Parent, MTYPE_bit_size, MTYPE_BS, MTYPE_is_complex, MTYPE_M, Mtype_TransferSign(), MTYPE_V, SYMBOL::Name(), new_symbol(), NULL, OPC_DO_LOOP, OPCODE_desc(), OPCODE_has_sym(), OPCODE_make_op(), OPCODE_operator(), OPCODE_rtype(), OPR_CVT, OPR_CVTL, OPR_LDID, OPR_STID, Promote_Type(), Rename_Update_MP(), Scalar_Equivalence_Class(), Size(), SYMBOL::St(), ST_st_idx, TFile, STACK< T >::Top_nth(), TP_LNOPT, TRUE, TT_LNO_NORENAME, TY_is_volatile, SYMBOL::Type, TYPE_ID, Update_Loop_Info(), WN_cvtl_bits(), WN_desc(), WN_index, WN_kid(), WN_kid0(), WN_kid_count(), SYMBOL::WN_Offset(), WN_offset(), WN_opcode(), WN_operator(), WN_rtype(), WN_set_field_id(), WN_set_opcode(), WN_set_rtype(), WN_set_ty(), WN_Simplifier_Enable(), WN_st_idx(), WN_start, WN_step, and WN_ty().

Referenced by Finalize_Index_Variable(), Finalize_Index_Variable_For_Remove_Unity_Trip_Loop(), Fix_Array_Deps_On_Index_Variable(), Fuse(), HoistIf(), Post_loop_peeling(), Pre_loop_peeling(), Scalar_Variable_Renaming(), Separate_And_Update(), separate_loop_and_scalar_expand(), simd_fis_separate_loop_and_scalar_expand(), Simd_Pre_Analysis(), vintr_fis_separate_loop_and_scalar_expand(), and Vintrinsic_Fission().

BOOL Scalar_Variable_Renaming ( WN loop  ) 

void toplogical_reordering ( WN loop,
UINT  depth,
ARRAY_DIRECTED_GRAPH16 adg 
)


Variable Documentation

Definition at line 82 of file ff_utils.cxx.

Referenced by Fission(), Fission_Test(), Move_Adjacent(), and WB_stmt_deps().


Generated on Wed Apr 8 14:33:03 2009 for Open64 by  doxygen 1.5.6