Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

dag Class Reference

#include <dag.H>

Inheritance diagram for dag:

DAGAnalysis DAGAnalysis List of all members.

Public Member Functions

 dag (int Inp_start, int Inp_end, int Ret_start, int Ret_end, int Fp_ret_start, int Fp_ret_end)
 dag (machine *, int Inp_start, int Inp_end, int Ret_start, int Ret_end, int Fp_ret_start, int Fp_ret_end)
 dag (machine *, knobs *, int Inp_start, int Inp_end, int Ret_start, int Ret_end, int Fp_ret_start, int Fp_ret_end)
void CopyGraph (dag *src)
void CopyDefUseTable (dag *src)
machineGetMachine ()
 ~dag ()
void DeleteDefUseTable ()
void DeleteGraphNodes ()
void KillDag ()
 Stats ()
void SetNumNodes (int Value)
int GetListSize ()
void ConstructDag (legoRegion *)
vector< BigListElement > * GetList ()
void FullyResolvePredicates (legoRegion *, legoOp *)
void SortByOpId ()
void SortByHeight ()
void SortByValue ()
void SetNodeHeights ()
void SetNodeDepths ()
void ResetNodeHeights ()
void ResetNodeDepths ()
void MaxHeights ()
double GetAveMaxHeight ()
int GetNumPath ()
int GetAveWidth ()
void PrintDag ()
void PrintGraphicDag (int print_control_edges=1)
void PrintDag (ofstream &os1)
void PrintDefUseTable ()
void ListIntegrity ()
int RemoveDepBetweenOps (legoOp *Op1, legoOp *Op2, enum edgeTypes dep_type)
int AreVectorsIndependent (bitvector *vector1, bitvector *vector2, int vector_size)
int AreOpsDependent (legoOp *Op1, legoOp *Op2)
 dag (int Inp_start, int Inp_end, int Ret_start, int Ret_end, int Fp_ret_start, int Fp_ret_end)
 dag (machine *, int Inp_start, int Inp_end, int Ret_start, int Ret_end, int Fp_ret_start, int Fp_ret_end)
 dag (machine *, knobs *, int Inp_start, int Inp_end, int Ret_start, int Ret_end, int Fp_ret_start, int Fp_ret_end)
void CopyGraph (dag *src)
void CopyDefUseTable (dag *src)
machineGetMachine ()
 ~dag ()
void DeleteDefUseTable ()
void DeleteGraphNodes ()
void KillDag ()
 Stats ()
void SetNumNodes (int Value)
int GetListSize ()
void ConstructDag (legoRegion *)
vector< BigListElement > * GetList ()
void FullyResolvePredicates (legoRegion *, legoOp *)
void SortByOpId ()
void SortByHeight ()
void SortByValue ()
void SetNodeHeights ()
void SetNodeDepths ()
void ResetNodeHeights ()
void ResetNodeDepths ()
void MaxHeights ()
double GetAveMaxHeight ()
int GetNumPath ()
int GetAveWidth ()
void PrintDag ()
void PrintGraphicDag (int print_control_edges=1)
void PrintDag (ofstream &os1)
void PrintDefUseTable ()
void ListIntegrity ()
int RemoveDepBetweenOps (legoOp *Op1, legoOp *Op2, enum edgeTypes dep_type)
int AreVectorsIndependent (bitvector *vector1, bitvector *vector2, int vector_size)
int AreOpsDependent (legoOp *Op1, legoOp *Op2)

Public Attributes

MainList MasterList

Protected Member Functions

MainList::iterator InsertOp (BigListElement Element)
void SetBrDeps (MainList::iterator MasterListIter)
void SetBrDepsFirst (MainList::iterator MasterListIter, legoRegion *Region)
void SetPBRDeps (MainList::iterator MasterListIter, legoRegion *Region)
void SetVectorPtrs (vector< SmallListElement > *)
void SetSublistPtrs (VectorList *V)
void CopyVectorToVector (VectorList *v1, VectorList *v2)
void CopyListToVector (MainList::iterator, MainList::iterator)
void CopyListToVector ()
void AnalyzeFlowDep (legoOprd *, MainList::iterator)
int OutputDeps (legoOprd *, MainList::iterator)
int AntiDeps (legoOprd *, MainList::iterator)
void FlowDeps (MainList::iterator, BigListElement *)
void OutputAntiDeps (MainList::iterator, BigListElement *)
void UpdateUseStatus (MainList::iterator, BigListElement *)
void RemoveUndefPredecessors ()
void ConstructLinearDag (legoRegion *)
void ConstructTreeDag (legoRegion *, DagHashTable *, vector< MainList::iterator > *, vector< MainList::iterator > *)
int SetNodeHeight (vector< BigListElement >::iterator)
int SetNodeDepth (vector< BigListElement >::iterator)
void PrintVectorDag (vector< BigListElement > *)
void PrintVectorDag (vector< BigListElement > *, ofstream &os1)
void ListIntegrity (vector< BigListElement > *)
void BubbleSort (vector< BigListElement >::iterator, vector< BigListElement >::iterator, int(*)(BigListElement *, BigListElement *))
void BubbleSort (int(*)(BigListElement *, BigListElement *))
MainList::iterator InsertOp (BigListElement Element)
void SetBrDeps (MainList::iterator MasterListIter)
void SetBrDepsFirst (MainList::iterator MasterListIter, legoRegion *Region)
void SetPBRDeps (MainList::iterator MasterListIter, legoRegion *Region)
void SetVectorPtrs (vector< SmallListElement > *)
void SetSublistPtrs (VectorList *V)
void CopyVectorToVector (VectorList *v1, VectorList *v2)
void CopyListToVector (MainList::iterator, MainList::iterator)
void CopyListToVector ()
void AnalyzeFlowDep (legoOprd *, MainList::iterator)
int OutputDeps (legoOprd *, MainList::iterator)
int AntiDeps (legoOprd *, MainList::iterator)
void FlowDeps (MainList::iterator, BigListElement *)
void OutputAntiDeps (MainList::iterator, BigListElement *)
void UpdateUseStatus (MainList::iterator, BigListElement *)
void RemoveUndefPredecessors ()
void ConstructLinearDag (legoRegion *)
void ConstructTreeDag (legoRegion *, DagHashTable *, vector< MainList::iterator > *, vector< MainList::iterator > *)
int SetNodeHeight (vector< BigListElement >::iterator)
int SetNodeDepth (vector< BigListElement >::iterator)
void PrintVectorDag (vector< BigListElement > *)
void PrintVectorDag (vector< BigListElement > *, ofstream &os1)
void ListIntegrity (vector< BigListElement > *)
void BubbleSort (vector< BigListElement >::iterator, vector< BigListElement >::iterator, int(*)(BigListElement *, BigListElement *))
void BubbleSort (int(*)(BigListElement *, BigListElement *))

Protected Attributes

const int Hash_Key_Size = 20
const int Hash_Reg_Size = 10
vector< BigListElementVector
int VectorActive
legoRegionParentRegion
enum regionTypes ParentRegionType
vector< char * > HashKeyList
int KillDagFlag
MainList::iterator MainListIter
MainList::iterator BranchBarrier
vector< MainList::iterator > StoreList
vector< MainList::iterator > LoadList
DagHashTable::const_iterator LookupIter
RegisterInfo WriteElement
RegisterInfo ReadElement
DagHashTable Table
int NumNodes
double ProfileWeight
machineMachine
int InternalNodes
int NotRoot
legoRegionprev_block_ptr
char * WriteHashKey
char * ReadHashKey
char * WriteHashReg
char * ReadHashReg
legoRegionParentRegion
vector< char * > HashKeyList
vector< MainList::iterator > StoreList
vector< MainList::iterator > LoadList
machineMachine
legoRegionprev_block_ptr
char * WriteHashKey

Private Member Functions

void SetNodeHeightsPath (int end_bb_id)
int SetNodeHeightPath (vector< BigListElement >::iterator, legoRegion *exit_reg)
void SetNodeHeightsPath (int end_bb_id)
int SetNodeHeightPath (vector< BigListElement >::iterator, legoRegion *exit_reg)

Private Attributes

double ave_max_height
double * max_heights
int num_path
int * path_BB_ids
double * weights
int * num_ops
int inp_start
int inp_end
int ret_start
int ret_end
int fp_ret_start
int fp_ret_end
double * max_heights
int * path_BB_ids
double * weights
int * num_ops

Friends

class dag_node_ordering
class list_scheduler
class bottom_up_greedy
void DrawDAG (dag *, char *)
void DrawDAG (dag *, char *)

Constructor & Destructor Documentation

dag::dag int  Inp_start,
int  Inp_end,
int  Ret_start,
int  Ret_end,
int  Fp_ret_start,
int  Fp_ret_end
[inline]
 

Definition at line 231 of file include/dag.H.

References fp_ret_end, fp_ret_start, inp_end, inp_start, KillDagFlag, NumNodes, ret_end, and ret_start.

dag::dag machine ,
int  Inp_start,
int  Inp_end,
int  Ret_start,
int  Ret_end,
int  Fp_ret_start,
int  Fp_ret_end
 

Definition at line 947 of file dag.C.

References ave_max_height, derr, fp_ret_end, fp_ret_start, FunctionName, Hash_Key_Size, Hash_Reg_Size, inp_end, inp_start, KillDagFlag, Machine, max_heights, MAX_NUM_PATH, num_ops, num_path, NumNodes, path_BB_ids, ReadHashKey, ReadHashReg, ret_end, ret_start, VectorActive, and weights.

dag::dag machine ,
knobs ,
int  Inp_start,
int  Inp_end,
int  Ret_start,
int  Ret_end,
int  Fp_ret_start,
int  Fp_ret_end
 

Definition at line 979 of file dag.C.

References ave_max_height, derr, fp_ret_end, fp_ret_start, FunctionName, Hash_Key_Size, Hash_Reg_Size, inp_end, inp_start, KillDagFlag, Knobs, Machine, max_heights, MAX_NUM_PATH, num_ops, num_path, NumNodes, path_BB_ids, ReadHashKey, ReadHashReg, ret_end, ret_start, knobs::SetDefaultPanel(), VectorActive, and weights.

dag::~dag  ) 
 

Definition at line 1065 of file dag.C.

References derr, KillDag(), KillDagFlag, max_heights, num_ops, path_BB_ids, and weights.

dag::dag int  Inp_start,
int  Inp_end,
int  Ret_start,
int  Ret_end,
int  Fp_ret_start,
int  Fp_ret_end
[inline]
 

Definition at line 231 of file src/dag.H.

References fp_ret_end, fp_ret_start, inp_end, inp_start, KillDagFlag, NumNodes, ret_end, and ret_start.

dag::dag machine ,
int  Inp_start,
int  Inp_end,
int  Ret_start,
int  Ret_end,
int  Fp_ret_start,
int  Fp_ret_end
 

dag::dag machine ,
knobs ,
int  Inp_start,
int  Inp_end,
int  Ret_start,
int  Ret_end,
int  Fp_ret_start,
int  Fp_ret_end
 

dag::~dag  ) 
 


Member Function Documentation

void dag::AnalyzeFlowDep legoOprd ,
MainList::iterator 
[protected]
 

void dag::AnalyzeFlowDep legoOprd ,
MainList::iterator 
[protected]
 

Definition at line 1087 of file dag_dependency.C.

References AreOpsDependent(), Back, CreateDagHashKey, DBL_RET, dderr, RegisterInfo::DefiningOp, RegisterInfo::DefiningOpId, derr, ET_LINKDEST, ET_LINKSRC, ET_REGFLOW, FALSE, fp_ret_end, fp_ret_start, Front, FT_FPR, FT_GPR, legoOprd::GetLiteralPredicate(), legoOprd::GetNextOprdPtr(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), Hash_Key_Size, inp_end, inp_end, inp_start, INT_P1, InternalNodes, LookupIter, MainListIter, OT_LITERAL_P, OT_MACRO, OT_REG, ReadElement, ReadHashKey, ReadHashReg, ret_end, ret_start, strcmp(), Table, TRUE, RegisterInfo::UsingOp, and RegisterInfo::UsingOpId.

Referenced by FlowDeps().

int dag::AntiDeps legoOprd ,
MainList::iterator 
[protected]
 

int dag::AntiDeps legoOprd ,
MainList::iterator 
[protected]
 

Definition at line 318 of file dag_dependency.C.

References AreOpsDependent(), Back, CreateDagHashKey, DBL_P2, dderr, derr, ET_LINKSRC, ET_REGANTI, fp_ret_end, fp_ret_start, Front, FT_FPR, FT_GPR, legoOprd::GetNextOprdPtr(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), Hash_Key_Size, inp_end, inp_end, inp_start, INT_P1, InternalNodes, LookupIter, OT_MACRO, OT_REG, ReadElement, ReadHashKey, ReadHashReg, ret_end, ret_start, strcmp(), Table, RegisterInfo::UsingOp, and RegisterInfo::UsingOpId.

Referenced by OutputAntiDeps().

int dag::AreOpsDependent legoOp Op1,
legoOp Op2
 

int dag::AreOpsDependent legoOp Op1,
legoOp Op2
 

Definition at line 55 of file dag_dependency.C.

References AreVectorsIndependent(), dderr, FALSE, FindLcAttribute(), attrs::GetAttrOprdPtr(), legoOprd::GetLiteralInteger(), legoOp::GetParentBlockPtr(), legoOp::GetPredVectorPtr(), bitvector::Show(), and TRUE.

Referenced by AnalyzeFlowDep(), AntiDeps(), op_scheduler::AnyOutputDepsBetween(), list_scheduler::AnyOutputDepsBetween(), op_scheduler::DoTheMessyStuff(), list_scheduler::DoTheMessyStuff(), FlowDeps(), OutputAntiDeps(), OutputDeps(), SetBrDeps(), and SetBrDepsFirst().

int dag::AreVectorsIndependent bitvector vector1,
bitvector vector2,
int  vector_size
 

int dag::AreVectorsIndependent bitvector vector1,
bitvector vector2,
int  vector_size
 

Definition at line 34 of file dag_dependency.C.

References FALSE, bitvector::GetSize(), i, bitvector::Read(), and TRUE.

Referenced by AreOpsDependent().

void dag::BubbleSort int(*  )(BigListElement *, BigListElement *)  )  [protected]
 

void dag::BubbleSort vector< BigListElement >::iterator  ,
vector< BigListElement >::iterator  ,
int(*  )(BigListElement *, BigListElement *)
[protected]
 

void dag::BubbleSort int(*  )(BigListElement *, BigListElement *)  )  [protected]
 

Definition at line 243 of file dag_sort.C.

References Back, derr, Front, i, MasterList, size, and Vector.

void dag::BubbleSort vector< BigListElement >::iterator  ,
vector< BigListElement >::iterator  ,
int(*  )(BigListElement *, BigListElement *)
[protected]
 

Definition at line 200 of file dag_sort.C.

References Back, derr, Front, and i.

Referenced by SortByHeight(), SortByOpId(), and SortByValue().

void dag::ConstructDag legoRegion  ) 
 

void dag::ConstructDag legoRegion  ) 
 

Definition at line 758 of file dag.C.

References ClearMarks(), ConstructLinearDag(), ConstructTreeDag(), derr, DestructBigList(), exit(), find_op(), FindEdgeFrequency(), FunctionName, legoPSet< void * >::GetCount(), edgeList::GetEdgePtr(), opEdges::GetFromOpId(), legoPSet< void * >::GetItem(), edgeList::GetNextListPtr(), opList::GetNextListPtr(), legoRegion::GetOpCount(), legoOp::GetOpId(), opList::GetOpPtr(), legoOp::GetParentBlockPtr(), legoRegion::GetParents(), legoRegion::GetRegionId(), regionList::GetRegionPtr(), legoRegion::GetRegionType(), legoTreegion::GetRoot(), opEdges::GetToOpId(), i, IS_BLOCK, legoOp::IsRETOp(), MasterList, MAX_NUM_PATH, NotRoot, num_ops, num_path, ParentRegion, path_BB_ids, printf(), RemoveUndefPredecessors(), RM_GENERAL, RT_TRACE, RT_TREE, SetNodeDepths(), SetNodeHeights(), Vector, VectorActive, and weights.

Referenced by BuildDagForRegion(), main(), Td_Candidates(), and Treeform_opt().

void dag::ConstructLinearDag legoRegion  )  [protected]
 

void dag::ConstructLinearDag legoRegion  )  [protected]
 

Definition at line 631 of file dag.C.

References Back, BR_OP, BigListElement::ClusterId, CopyListToVector(), CorrectionCode, derr, FALSE, FindFlag(), FindLcAttribute(), FindOpWeight(), FlowDeps(), Front, FunctionName, legoPSet< void * >::GetCount(), legoPSet< void * >::GetItem(), legoOprd::GetLiteralPredicate(), legoOprd::GetOprdType(), legoRegion::GetRegionId(), legoRegion::GetRegionType(), legoRegion::GetWeight(), i, InsertOp(), IsLoadOp(), IsStoreOp(), LoadList, Machine, MasterList, NumNodes, OT_LITERAL_P, OutputAntiDeps(), PrepOpForInsertion, RT_BB, RT_HB, RT_SB, SB, SetBrDeps(), SetClusterId, StoreList, machine::TinkerOptype(), TRUE, and UpdateUseStatus().

Referenced by ConstructDag().

void dag::ConstructTreeDag legoRegion ,
DagHashTable ,
vector< MainList::iterator > *  ,
vector< MainList::iterator > * 
[protected]
 

void dag::ConstructTreeDag legoRegion ,
DagHashTable ,
vector< MainList::iterator > *  ,
vector< MainList::iterator > * 
[protected]
 

Definition at line 440 of file dag.C.

References Back, BR_OP, BigListElement::ClusterId, CopyListToVector(), CorrectionCode, DagHashTable, derr, FALSE, FindLcAttribute(), FlowDeps(), Front, FunctionName, legoPSet< void * >::GetCount(), legoOprd::GetLiteralPredicate(), regionList::GetNextListPtr(), legoOprd::GetOprdType(), legoRegion::GetParentPtr(), legoRegion::GetRegionId(), regionList::GetRegionPtr(), DagNode::GetWeight(), i, InsertOp(), IsLoadOp(), legoRegion::IsMarked(), IsStoreOp(), LoadList, Machine, MasterList, NotRoot, NumNodes, OT_LITERAL_P, OutputAntiDeps(), ParentRegion, PrepOpForInsertion, prev_block_ptr, RM_GENERAL, SetBrDeps(), SetBrDepsFirst(), SetClusterId, SetPBRDeps(), StoreList, Table, machine::TinkerOptype(), TRUE, UpdateTreeTraversalRList(), UpdateUseStatus(), and Vector.

Referenced by ConstructDag().

void dag::CopyDefUseTable dag src  )  [inline]
 

Definition at line 255 of file src/dag.H.

References Table.

void dag::CopyDefUseTable dag src  )  [inline]
 

Definition at line 255 of file include/dag.H.

References Table.

void dag::CopyGraph dag src  ) 
 

void dag::CopyGraph dag src  ) 
 

Definition at line 592 of file dag_utilities.C.

References CopyBigVector(), derr, MasterList, Vector, and VectorActive.

void dag::CopyListToVector  )  [protected]
 

void dag::CopyListToVector MainList::iterator  ,
MainList::iterator 
[protected]
 

void dag::CopyListToVector  )  [protected]
 

Referenced by ConstructLinearDag(), and ConstructTreeDag().

void dag::CopyListToVector MainList::iterator  ,
MainList::iterator 
[protected]
 

Definition at line 110 of file dag_sort.C.

References derr, BigListElement::PrintElement(), and Vector.

void dag::CopyVectorToVector VectorList v1,
VectorList v2
[protected]
 

void dag::CopyVectorToVector VectorList v1,
VectorList v2
[protected]
 

Definition at line 136 of file dag_sort.C.

References derr, and SetSublistPtrs().

void dag::DeleteDefUseTable  ) 
 

void dag::DeleteDefUseTable  ) 
 

Definition at line 1013 of file dag.C.

References derr, HashKeyList, ReadHashKey, ReadHashReg, and Table.

Referenced by KillDag().

void dag::DeleteGraphNodes  ) 
 

void dag::DeleteGraphNodes  ) 
 

Definition at line 1033 of file dag.C.

References derr, DestructBigList(), DestructBigVector(), MasterList, Vector, and VectorActive.

Referenced by KillDag().

void dag::FlowDeps MainList::iterator  ,
BigListElement
[protected]
 

void dag::FlowDeps MainList::iterator  ,
BigListElement
[protected]
 

Definition at line 1367 of file dag_dependency.C.

References AnalyzeFlowDep(), AreOpsDependent(), DBL_P2, dderr, derr, DT_D, DT_I, ET_MEM, FindLcAttribute(), fp_ret_end, fp_ret_start, FT_FPR, FT_GPR, inp_end, inp_end, inp_start, INT_P1, IsLoadOp(), IsStoreOp(), OT_MACRO, OT_REG, ret_end, ret_start, RT_R, legoOprd::SetOprdDataType(), legoOprd::SetOprdFileType(), legoOprd::SetOprdRegNum(), legoOprd::SetOprdRegType(), legoOprd::SetOprdType(), and StoreList.

Referenced by ConstructLinearDag(), and ConstructTreeDag().

void dag::FullyResolvePredicates legoRegion ,
legoOp
 

void dag::FullyResolvePredicates legoRegion ,
legoOp
 

double dag::GetAveMaxHeight  )  [inline]
 

Definition at line 319 of file src/dag.H.

References ave_max_height.

double dag::GetAveMaxHeight  )  [inline]
 

Definition at line 319 of file include/dag.H.

References ave_max_height.

Referenced by Td_Candidates(), and Treeform_opt().

int dag::GetAveWidth  )  [inline]
 

Definition at line 321 of file src/dag.H.

References i, num_ops, and num_path.

int dag::GetAveWidth  )  [inline]
 

Definition at line 321 of file include/dag.H.

References i, num_ops, and num_path.

vector< BigListElement >* dag::GetList  )  [inline]
 

Definition at line 295 of file src/dag.H.

References MasterList, and Vector.

vector< BigListElement >* dag::GetList  )  [inline]
 

Definition at line 295 of file include/dag.H.

References MasterList, and Vector.

Referenced by list_scheduler::list_scheduler(), MungManyToOne(), and op_scheduler::op_scheduler().

int dag::GetListSize  )  [inline]
 

Definition at line 292 of file src/dag.H.

References NumNodes.

int dag::GetListSize  )  [inline]
 

Definition at line 292 of file include/dag.H.

References NumNodes.

Referenced by list_scheduler::list_scheduler(), and op_scheduler::op_scheduler().

machine* dag::GetMachine  )  [inline]
 

Definition at line 263 of file src/dag.H.

References Machine.

machine* dag::GetMachine  )  [inline]
 

Definition at line 263 of file include/dag.H.

References Machine.

Referenced by ScheduleRegion().

int dag::GetNumPath  )  [inline]
 

Definition at line 320 of file src/dag.H.

References num_path.

int dag::GetNumPath  )  [inline]
 

Definition at line 320 of file include/dag.H.

References num_path.

MainList::iterator dag::InsertOp BigListElement  Element  )  [protected]
 

MainList::iterator dag::InsertOp BigListElement  Element  )  [protected]
 

Definition at line 259 of file dag.C.

References MasterList.

Referenced by ConstructLinearDag(), and ConstructTreeDag().

void dag::KillDag  ) 
 

void dag::KillDag  ) 
 

Definition at line 1054 of file dag.C.

References DeleteDefUseTable(), DeleteGraphNodes(), derr, and KillDagFlag.

Referenced by ~dag().

void dag::ListIntegrity  ) 
 

void dag::ListIntegrity vector< BigListElement > *   )  [protected]
 

void dag::ListIntegrity  ) 
 

Definition at line 20 of file dag_utilities.C.

References MasterList, and Vector.

void dag::ListIntegrity vector< BigListElement > *   )  [protected]
 

Definition at line 31 of file dag_utilities.C.

References Back, FindNode(), Front, i, BigListElement::Predecessors, and BigListElement::Successors.

void dag::MaxHeights  ) 
 

void dag::MaxHeights  ) 
 

Definition at line 487 of file dag_utilities.C.

References ave_max_height, Back, Front, machine::GetNumSlots(), legoRegion::GetRegionType(), i, Machine, MasterList, max_heights, num_ops, num_path, ParentRegion, path_BB_ids, ResetNodeHeights(), RT_BB, RT_TREE, SetNodeHeightsPath(), Vector, and weights.

Referenced by Td_Candidates(), and Treeform_opt().

void dag::OutputAntiDeps MainList::iterator  ,
BigListElement
[protected]
 

void dag::OutputAntiDeps MainList::iterator  ,
BigListElement
[protected]
 

Definition at line 499 of file dag_dependency.C.

References AntiDeps(), AreOpsDependent(), CreateDagHashKey, CreateDagWriteHashKey, DBL_RET, dderr, RegisterInfo::DefiningOp, RegisterInfo::DefiningOpId, RegisterInfo::DefOp, derr, DT_D, DT_I, ET_LINKDEST, ET_MEM, FindLcAttribute(), fp_ret_end, fp_ret_start, Front, FT_FPR, FT_GPR, legoOprd::GetLiteralPredicate(), legoOprd::GetNextOprdPtr(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), inp_end, inp_end, inp_start, INT_P1, IsStoreOp(), LoadList, LookupIter, MainListIter, OT_LITERAL_P, OT_MACRO, OT_REG, OutputDeps(), ReadElement, ReadHashKey, ReadHashReg, RegisterInfo::Regid, ret_end, ret_start, RegisterInfo::RFType, RT_R, legoOprd::SetOprdDataType(), legoOprd::SetOprdFileType(), legoOprd::SetOprdRegNum(), legoOprd::SetOprdRegType(), legoOprd::SetOprdType(), StoreList, Table, TRUE, RegisterInfo::UseOp, RegisterInfo::UsingOp, RegisterInfo::UsingOpId, WriteElement, and WriteHashKey.

Referenced by ConstructLinearDag(), and ConstructTreeDag().

int dag::OutputDeps legoOprd ,
MainList::iterator 
[protected]
 

int dag::OutputDeps legoOprd ,
MainList::iterator 
[protected]
 

Definition at line 122 of file dag_dependency.C.

References AreOpsDependent(), Back, CreateDagHashKey, DBL_RET, dderr, RegisterInfo::DefiningOp, RegisterInfo::DefiningOpId, derr, ET_LINKDEST, ET_REGOUT, fp_ret_end, fp_ret_start, Front, FT_FPR, FT_GPR, legoOprd::GetNextOprdPtr(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), Hash_Key_Size, inp_end, inp_end, inp_start, INT_P1, InternalNodes, LookupIter, OT_MACRO, OT_REG, ReadElement, ReadHashKey, ReadHashReg, ret_end, ret_start, strcmp(), and Table.

Referenced by OutputAntiDeps().

void dag::PrintDag ofstream &  os1  ) 
 

void dag::PrintDag  ) 
 

void dag::PrintDag ofstream &  os1  ) 
 

Definition at line 219 of file dag.C.

References Back, Front, MasterList, PrintVectorDag(), Vector, and VectorActive.

void dag::PrintDag  ) 
 

Definition at line 179 of file dag.C.

References Back, Front, MasterList, PrintVectorDag(), Vector, and VectorActive.

Referenced by PrintDagsForProc().

void dag::PrintDefUseTable  )  [inline]
 

Definition at line 337 of file src/dag.H.

References PrintTable(), and Table.

void dag::PrintDefUseTable  )  [inline]
 

Definition at line 337 of file include/dag.H.

References PrintTable(), and Table.

void dag::PrintGraphicDag int  print_control_edges = 1  ) 
 

void dag::PrintGraphicDag int  print_control_edges = 1  ) 
 

Definition at line 148 of file dag.C.

References LegoNonFatal().

void dag::PrintVectorDag vector< BigListElement > *  ,
ofstream &  os1
[protected]
 

void dag::PrintVectorDag vector< BigListElement > *   )  [protected]
 

void dag::PrintVectorDag vector< BigListElement > *  ,
ofstream &  os1
[protected]
 

Definition at line 168 of file dag.C.

References Back, and Front.

void dag::PrintVectorDag vector< BigListElement > *   )  [protected]
 

Definition at line 159 of file dag.C.

References Back, and Front.

Referenced by PrintDag().

int dag::RemoveDepBetweenOps legoOp Op1,
legoOp Op2,
enum edgeTypes  dep_type
 

int dag::RemoveDepBetweenOps legoOp Op1,
legoOp Op2,
enum edgeTypes  dep_type
 

Definition at line 623 of file dag_utilities.C.

References Back, Front, MasterList, SetVectorPtrs(), and Vector.

void dag::RemoveUndefPredecessors  )  [protected]
 

void dag::RemoveUndefPredecessors  )  [protected]
 

Definition at line 1779 of file dag_dependency.C.

References Back, derr, ET_LINKDEST, ET_LINKSRC, Front, DagNode::GetOp(), legoOp::GetOpId(), MasterList, BigListElement::Predecessors, BigListElement::RemovePredecessor(), and SetVectorPtrs().

Referenced by ConstructDag().

void dag::ResetNodeDepths  ) 
 

void dag::ResetNodeDepths  ) 
 

Definition at line 464 of file dag_utilities.C.

References Back, counter, derr, Front, MasterList, and Vector.

void dag::ResetNodeHeights  ) 
 

void dag::ResetNodeHeights  ) 
 

Definition at line 307 of file dag_utilities.C.

References Back, counter, derr, Front, MasterList, and Vector.

Referenced by MaxHeights(), Td_Candidates(), and Treeform_opt().

void dag::SetBrDeps MainList::iterator  MasterListIter  )  [protected]
 

void dag::SetBrDeps MainList::iterator  MasterListIter  )  [protected]
 

Definition at line 277 of file dag.C.

References AreOpsDependent(), BranchBarrier, dderr, derr, ET_CNTL, and Front.

Referenced by ConstructLinearDag(), and ConstructTreeDag().

void dag::SetBrDepsFirst MainList::iterator  MasterListIter,
legoRegion Region
[protected]
 

void dag::SetBrDepsFirst MainList::iterator  MasterListIter,
legoRegion Region
[protected]
 

Definition at line 314 of file dag.C.

References AreOpsDependent(), dderr, derr, ET_CNTL, Front, legoOp::GetInListPtr(), legoPSet< void * >::GetItem(), legoOp::GetOpId(), opList::GetOpId(), and MasterList.

Referenced by ConstructTreeDag().

int dag::SetNodeDepth vector< BigListElement >::iterator   )  [protected]
 

int dag::SetNodeDepth vector< BigListElement >::iterator   )  [protected]
 

Referenced by SetNodeDepths().

void dag::SetNodeDepths  ) 
 

void dag::SetNodeDepths  ) 
 

Definition at line 440 of file dag_utilities.C.

References Back, counter, derr, Front, MasterList, SetNodeDepth(), and Vector.

Referenced by ConstructDag(), dag_node_ordering::DoSuperblockPriorities(), DrawDAG(), and SetNodeHeightsAndDepthsForRegion().

int dag::SetNodeHeight vector< BigListElement >::iterator   )  [protected]
 

int dag::SetNodeHeight vector< BigListElement >::iterator   )  [protected]
 

Referenced by SetNodeHeights().

int dag::SetNodeHeightPath vector< BigListElement >::iterator  ,
legoRegion exit_reg
[private]
 

int dag::SetNodeHeightPath vector< BigListElement >::iterator  ,
legoRegion exit_reg
[private]
 

Referenced by SetNodeHeightsPath().

void dag::SetNodeHeights  ) 
 

void dag::SetNodeHeights  ) 
 

Definition at line 282 of file dag_utilities.C.

References Back, counter, derr, Front, MasterList, SetNodeHeight(), and Vector.

Referenced by ConstructDag(), DrawDAG(), and SetNodeHeightsAndDepthsForRegion().

void dag::SetNodeHeightsPath int  end_bb_id  )  [private]
 

void dag::SetNodeHeightsPath int  end_bb_id  )  [private]
 

Definition at line 326 of file dag_utilities.C.

References Back, counter, derr, Front, legoPSet< void * >::GetCount(), legoPSet< void * >::GetItem(), legoRegion::GetRegionId(), legoRegion::GetRegionType(), i, MasterList, ParentRegion, RT_BB, RT_TREE, SetNodeHeightPath(), and Vector.

Referenced by MaxHeights().

void dag::SetNumNodes int  Value  )  [inline]
 

Definition at line 291 of file src/dag.H.

References NumNodes, and Value.

void dag::SetNumNodes int  Value  )  [inline]
 

Definition at line 291 of file include/dag.H.

References NumNodes, and Value.

void dag::SetPBRDeps MainList::iterator  MasterListIter,
legoRegion Region
[protected]
 

void dag::SetPBRDeps MainList::iterator  MasterListIter,
legoRegion Region
[protected]
 

Definition at line 401 of file dag.C.

References dderr, derr, ET_CNTL, Front, legoOp::GetInListPtr(), legoPSet< void * >::GetItem(), opList::GetOpId(), and MasterList.

Referenced by ConstructTreeDag().

void dag::SetSublistPtrs VectorList V  )  [protected]
 

void dag::SetSublistPtrs VectorList V  )  [protected]
 

Definition at line 88 of file dag_sort.C.

References derr, and SetVectorPtrs().

Referenced by CopyVectorToVector(), SortByHeight(), SortByOpId(), and SortByValue().

void dag::SetVectorPtrs vector< SmallListElement > *   )  [protected]
 

void dag::SetVectorPtrs vector< SmallListElement > *   )  [protected]
 

Definition at line 56 of file dag_sort.C.

References derr, FindOpInList(), SmallListElement::GetDagEntry(), DagNode::GetOp(), SmallListNode::GetOp(), legoOp::GetOpId(), i, index(), MasterList, SmallListElement::SetDagEntry(), size, and Vector.

Referenced by RemoveDepBetweenOps(), RemoveUndefPredecessors(), and SetSublistPtrs().

void dag::SortByHeight  ) 
 

void dag::SortByHeight  ) 
 

Definition at line 338 of file dag_sort.C.

References Back, BubbleSort(), CompareNodeHeights(), derr, Front, MasterList, SetSublistPtrs(), and Vector.

void dag::SortByOpId  ) 
 

void dag::SortByOpId  ) 
 

Definition at line 295 of file dag_sort.C.

References Back, BubbleSort(), CompareNodeIds(), derr, Front, MasterList, SetSublistPtrs(), and Vector.

void dag::SortByValue  ) 
 

void dag::SortByValue  ) 
 

Definition at line 384 of file dag_sort.C.

References Back, BubbleSort(), CompareNodeValues(), derr, Front, MasterList, SetSublistPtrs(), and Vector.

Referenced by MakeValueListForRegion().

dag::Stats  ) 
 

dag::Stats  ) 
 

Definition at line 926 of file dag.C.

References i, MasterList, size, Table, Vector, and VectorActive.

void dag::UpdateUseStatus MainList::iterator  ,
BigListElement
[protected]
 

void dag::UpdateUseStatus MainList::iterator  ,
BigListElement
[protected]
 

Definition at line 1449 of file dag_dependency.C.

References CreateDagHashKey, CreateDagWriteHashKey, DBL_P2, RegisterInfo::DefiningOp, RegisterInfo::DefiningOpId, RegisterInfo::DefOp, derr, fp_ret_end, fp_ret_start, FT_FPR, FT_GPR, legoOprd::GetNextOprdPtr(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), inp_end, inp_end, inp_start, INT_P1, LookupIter, OT_MACRO, OT_REG, ReadElement, ReadHashKey, ReadHashReg, RegisterInfo::Regid, ret_end, ret_start, RegisterInfo::RFType, Table, RegisterInfo::UseOp, RegisterInfo::UsingOp, RegisterInfo::UsingOpId, WriteElement, and WriteHashKey.

Referenced by ConstructLinearDag(), and ConstructTreeDag().


Friends And Related Function Documentation

bottom_up_greedy [friend]
 

Definition at line 109 of file include/dag.H.

dag_node_ordering [friend]
 

Definition at line 107 of file include/dag.H.

void DrawDAG dag DAG,
char *  fname = NULL
[friend]
 

Definition at line 91 of file visDAG.C.

void DrawDAG dag DAG,
char *  fname = NULL
[friend]
 

Definition at line 91 of file visDAG.C.

list_scheduler [friend]
 

Definition at line 108 of file include/dag.H.


Member Data Documentation

double dag::ave_max_height [private]
 

Definition at line 166 of file src/dag.H.

Referenced by dag(), GetAveMaxHeight(), and MaxHeights().

MainList::iterator dag::BranchBarrier [protected]
 

Definition at line 135 of file src/dag.H.

Referenced by SetBrDeps().

int dag::fp_ret_end [private]
 

Definition at line 176 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), FlowDeps(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

int dag::fp_ret_start [private]
 

Definition at line 176 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), FlowDeps(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

const int dag::Hash_Key_Size = 20 [protected]
 

Definition at line 120 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), and OutputDeps().

const int dag::Hash_Reg_Size = 10 [protected]
 

Definition at line 120 of file src/dag.H.

Referenced by dag().

vector<char *> dag::HashKeyList [protected]
 

Definition at line 131 of file src/dag.H.

vector<char *> dag::HashKeyList [protected]
 

Definition at line 131 of file include/dag.H.

Referenced by DeleteDefUseTable().

int dag::inp_end [private]
 

Definition at line 176 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), FlowDeps(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

int dag::inp_start [private]
 

Definition at line 176 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), FlowDeps(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

int dag::InternalNodes [protected]
 

Definition at line 154 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), and OutputDeps().

int dag::KillDagFlag [protected]
 

Definition at line 133 of file src/dag.H.

Referenced by dag(), KillDag(), and ~dag().

vector<MainList::iterator> dag::LoadList [protected]
 

Definition at line 139 of file src/dag.H.

vector<MainList::iterator> dag::LoadList [protected]
 

Definition at line 139 of file include/dag.H.

Referenced by ConstructLinearDag(), ConstructTreeDag(), and OutputAntiDeps().

DagHashTable::const_iterator dag::LookupIter [protected]
 

Definition at line 141 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

machine* dag::Machine [protected]
 

Definition at line 152 of file src/dag.H.

machine* dag::Machine [protected]
 

Definition at line 152 of file include/dag.H.

Referenced by ConstructLinearDag(), ConstructTreeDag(), dag(), GetMachine(), and MaxHeights().

MainList::iterator dag::MainListIter [protected]
 

Definition at line 135 of file src/dag.H.

Referenced by AnalyzeFlowDep(), and OutputAntiDeps().

MainList dag::MasterList
 

Definition at line 114 of file src/dag.H.

Referenced by BubbleSort(), ConstructDag(), ConstructLinearDag(), ConstructTreeDag(), CopyGraph(), DeleteGraphNodes(), dag_node_ordering::DoSuperblockPriorities(), DrawDAG(), DAGAnalysis::FindOp(), GetList(), InsertOp(), ListIntegrity(), MaxHeights(), DAGAnalysis::Measure(), PrintDag(), RemoveDepBetweenOps(), RemoveUndefPredecessors(), ResetNodeDepths(), ResetNodeHeights(), SetBrDepsFirst(), SetNodeDepths(), SetNodeHeights(), SetNodeHeightsPath(), SetPBRDeps(), SetVectorPtrs(), SortByHeight(), SortByOpId(), SortByValue(), and Stats().

double* dag::max_heights [private]
 

Definition at line 167 of file src/dag.H.

double* dag::max_heights [private]
 

Definition at line 167 of file include/dag.H.

Referenced by dag(), MaxHeights(), and ~dag().

int dag::NotRoot [protected]
 

Definition at line 157 of file src/dag.H.

Referenced by ConstructDag(), and ConstructTreeDag().

int* dag::num_ops [private]
 

Definition at line 171 of file src/dag.H.

int* dag::num_ops [private]
 

Definition at line 171 of file include/dag.H.

Referenced by ConstructDag(), dag(), GetAveWidth(), MaxHeights(), and ~dag().

int dag::num_path [private]
 

Definition at line 168 of file src/dag.H.

Referenced by ConstructDag(), dag(), GetAveWidth(), GetNumPath(), and MaxHeights().

int dag::NumNodes [protected]
 

Definition at line 147 of file src/dag.H.

Referenced by ConstructLinearDag(), ConstructTreeDag(), dag(), GetListSize(), and SetNumNodes().

legoRegion* dag::ParentRegion [protected]
 

Definition at line 128 of file src/dag.H.

legoRegion* dag::ParentRegion [protected]
 

Definition at line 128 of file include/dag.H.

Referenced by ConstructDag(), ConstructTreeDag(), MaxHeights(), and SetNodeHeightsPath().

enum regionTypes dag::ParentRegionType [protected]
 

Definition at line 129 of file src/dag.H.

int* dag::path_BB_ids [private]
 

Definition at line 169 of file src/dag.H.

int* dag::path_BB_ids [private]
 

Definition at line 169 of file include/dag.H.

Referenced by ConstructDag(), dag(), MaxHeights(), and ~dag().

legoRegion* dag::prev_block_ptr [protected]
 

Definition at line 160 of file src/dag.H.

legoRegion* dag::prev_block_ptr [protected]
 

Definition at line 160 of file include/dag.H.

Referenced by ConstructTreeDag().

double dag::ProfileWeight [protected]
 

Definition at line 148 of file src/dag.H.

RegisterInfo dag::ReadElement [protected]
 

Definition at line 142 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

char * dag::ReadHashKey [protected]
 

Definition at line 162 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), DeleteDefUseTable(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

char * dag::ReadHashReg [protected]
 

Definition at line 162 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), DeleteDefUseTable(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

int dag::ret_end [private]
 

Definition at line 176 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), FlowDeps(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

int dag::ret_start [private]
 

Definition at line 176 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), dag(), FlowDeps(), OutputAntiDeps(), OutputDeps(), and UpdateUseStatus().

vector<MainList::iterator> dag::StoreList [protected]
 

Definition at line 138 of file src/dag.H.

vector<MainList::iterator> dag::StoreList [protected]
 

Definition at line 138 of file include/dag.H.

Referenced by ConstructLinearDag(), ConstructTreeDag(), FlowDeps(), and OutputAntiDeps().

DagHashTable dag::Table [protected]
 

Definition at line 145 of file src/dag.H.

Referenced by AnalyzeFlowDep(), AntiDeps(), ConstructTreeDag(), CopyDefUseTable(), DeleteDefUseTable(), OutputAntiDeps(), OutputDeps(), PrintDefUseTable(), Stats(), and UpdateUseStatus().

vector< BigListElement > dag::Vector [protected]
 

Definition at line 125 of file src/dag.H.

Referenced by BubbleSort(), ConstructDag(), ConstructTreeDag(), CopyGraph(), CopyListToVector(), DeleteGraphNodes(), dag_node_ordering::DoSuperblockPriorities(), DrawDAG(), GetList(), ListIntegrity(), MaxHeights(), PrintDag(), RemoveDepBetweenOps(), ResetNodeDepths(), ResetNodeHeights(), SetNodeDepths(), SetNodeHeights(), SetNodeHeightsPath(), SetVectorPtrs(), SortByHeight(), SortByOpId(), SortByValue(), and Stats().

int dag::VectorActive [protected]
 

Definition at line 126 of file src/dag.H.

Referenced by ConstructDag(), CopyGraph(), dag(), DeleteGraphNodes(), DrawDAG(), DAGAnalysis::FindOp(), DAGAnalysis::Measure(), PrintDag(), and Stats().

double* dag::weights [private]
 

Definition at line 170 of file src/dag.H.

double* dag::weights [private]
 

Definition at line 170 of file include/dag.H.

Referenced by ConstructDag(), dag(), MaxHeights(), and ~dag().

RegisterInfo dag::WriteElement [protected]
 

Definition at line 142 of file src/dag.H.

Referenced by OutputAntiDeps(), and UpdateUseStatus().

char* dag::WriteHashKey [protected]
 

Definition at line 162 of file src/dag.H.

char* dag::WriteHashKey [protected]
 

Definition at line 162 of file include/dag.H.

Referenced by OutputAntiDeps(), and UpdateUseStatus().

char * dag::WriteHashReg [protected]
 

Definition at line 162 of file src/dag.H.


The documentation for this class was generated from the following files:
Generated on Mon Jul 21 20:30:56 2003 for TINKER LEGO DOC by doxygen 1.3.2