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

list_scheduler Class Reference

#include <list_scheduler.H>

List of all members.

Public Member Functions

 list_scheduler ()
 list_scheduler (legoRegion *region, machine *MDES, knobs *Knobs)
 ~list_scheduler ()
virtual void SetKnobs (knobs *)
virtual void ShowParameters (knobs *)
int DominatorParallel ()
virtual legoOpSchedule (int *UsefulInstrsScheduled, int *scheduleLength, knobs *Knobs, int Final_Pass, int Predicated)
 list_scheduler ()
 list_scheduler (legoRegion *region, machine *MDES, knobs *Knobs)
 ~list_scheduler ()
virtual void SetKnobs (knobs *)
virtual void ShowParameters (knobs *)
int DominatorParallel ()
virtual legoOpSchedule (int *UsefulInstrsScheduled, int *scheduleLength, knobs *Knobs, int Final_Pass, int Predicated)

Protected Types

typedef vector< BigListElement
>::iterator 
ListIterator
typedef vector< BigListElement
>::iterator 
ListIterator

Protected Member Functions

int DescendantofBlock (int input_block_int, legoOp *op)
int DescendantofCurBlockPtr (ListIterator Node)
int TruePredecessorsScheduled (ListIterator Node)
int PredecessorsScheduled (ListIterator Node)
void BuildReadyTimes (ListIterator Node, int IssueCycle)
vector< BigListElement
>::iterator 
GetCandidateNodeTree (int, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass)
vector< BigListElement
>::iterator 
GetCandidateNode (int)
void ResetListPtr ()
void SimpleRename (legoOp *op, int RegNum, int IncMaxRegNum)
void ForwardGlobalRename (legoOprd *def, int RegNum, legoOprd *orig_def)
void ReverseGlobalRename (legoOprd *use, int RegNum, legoOprd *orig_def)
void GlobalRename (legoOp *op, int RegNum, int IncMaxRegNum)
int AddCopyOps (legoOp *op)
int IsRemoteMergeProblem (legoOprd *def, legoOprd *orig_def)
int IsMergeProblem (legoOprd *orig_def)
int Rename (legoOp *op, int RegNum, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass, int IncMaxRegNum, int Hazardous)
int anyliveout (legoOp *op, opEdges *edge)
void RemoveOutputDepsAfterRename (legoOprd *renamed_def)
void RemoveOutputDepsAfterRenameUp (legoOprd *renamed_def)
void RemoveAntiDepsAfterUseRename (legoOprd *renamed_use)
void RemoveAntiDepsAfterDefRename (legoOprd *renamed_def)
void copy_operand (legoOprd *Src, legoOprd *Target)
void add_to_existing_attr (attrs *Attr, legoOprd *NewOprd)
void create_new_attr (opEdges *Edge, legoOprd *Oprd, legoProc *Proc)
int FixLiveVarsUp (legoOp *op, legoOp *before_op, legoProc *proc_ptr)
int FixLiveVarsDown (legoOp *op, opEdges *edge, legoProc *proc_ptr)
int FixLiveVarsFromUses (legoOprd *use, legoOp *before_op, legoProc *proc_ptr)
int AnyOutputDepsBetween (legoOp *op, legoOp *op_in_multiop, legoOprd *compare_dest)
int DoTheMessyStuff (legoOp *op, legoRegion *proc_ptr)
legoOprdGetComplementaryDestOprd (legoOp *cmppop)
void PrepareToDie (legoOp *op)
void UpdatePredecessorBranch (legoOp *op, legoOp *old_predecessor_op, legoOp *new_predecessor_op)
int DoMoreMessyStuff (legoOp *op, int Final_Pass)
void PlacePBRsJustBeforeBranches ()
void PlaceBranchesLast ()
int ScheduleOp (legoOp *op, int Cycle, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass, int Predicated, int update_at_cycle_end)
int IsDominatorParallelwithRename (legoOp *op, int readytime, legoTreegion *treegion, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass)
int IsDominatorParallelwithRenameGeneral (legoOp *op, int readytime, legoTreegion *treegion, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass)
int checkIssue (int)
int DescendantofBlock (int input_block_int, legoOp *op)
int DescendantofCurBlockPtr (ListIterator Node)
int TruePredecessorsScheduled (ListIterator Node)
int PredecessorsScheduled (ListIterator Node)
void BuildReadyTimes (ListIterator Node, int IssueCycle)
vector< BigListElement
>::iterator 
GetCandidateNodeTree (int, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass)
vector< BigListElement
>::iterator 
GetCandidateNode (int)
void ResetListPtr ()
void SimpleRename (legoOp *op, int RegNum, int IncMaxRegNum)
void ForwardGlobalRename (legoOprd *def, int RegNum, legoOprd *orig_def)
void ReverseGlobalRename (legoOprd *use, int RegNum, legoOprd *orig_def)
void GlobalRename (legoOp *op, int RegNum, int IncMaxRegNum)
int AddCopyOps (legoOp *op)
int IsRemoteMergeProblem (legoOprd *def, legoOprd *orig_def)
int IsMergeProblem (legoOprd *orig_def)
int Rename (legoOp *op, int RegNum, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass, int IncMaxRegNum, int Hazardous)
int anyliveout (legoOp *op, opEdges *edge)
void RemoveOutputDepsAfterRename (legoOprd *renamed_def)
void RemoveOutputDepsAfterRenameUp (legoOprd *renamed_def)
void RemoveAntiDepsAfterUseRename (legoOprd *renamed_use)
void RemoveAntiDepsAfterDefRename (legoOprd *renamed_def)
void copy_operand (legoOprd *Src, legoOprd *Target)
void add_to_existing_attr (attrs *Attr, legoOprd *NewOprd)
void create_new_attr (opEdges *Edge, legoOprd *Oprd, legoProc *Proc)
int FixLiveVarsUp (legoOp *op, legoOp *before_op, legoProc *proc_ptr)
int FixLiveVarsDown (legoOp *op, opEdges *edge, legoProc *proc_ptr)
int FixLiveVarsFromUses (legoOprd *use, legoOp *before_op, legoProc *proc_ptr)
int AnyOutputDepsBetween (legoOp *op, legoOp *op_in_multiop, legoOprd *compare_dest)
int DoTheMessyStuff (legoOp *op, legoRegion *proc_ptr)
legoOprdGetComplementaryDestOprd (legoOp *cmppop)
void PrepareToDie (legoOp *op)
void UpdatePredecessorBranch (legoOp *op, legoOp *old_predecessor_op, legoOp *new_predecessor_op)
int DoMoreMessyStuff (legoOp *op, int Final_Pass)
void PlacePBRsJustBeforeBranches ()
void PlaceBranchesLast ()
int ScheduleOp (legoOp *op, int Cycle, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass, int Predicated, int update_at_cycle_end)
int IsDominatorParallelwithRename (legoOp *op, int readytime, legoTreegion *treegion, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass)
int IsDominatorParallelwithRenameGeneral (legoOp *op, int readytime, legoTreegion *treegion, knobs *Knobs, legoRegion *proc_ptr, int Final_Pass)
int checkIssue (int)

Protected Attributes

vector< BigListElement > * List
ListIterator ListHead
ListIterator ListTail
ListIterator ListPtr
int ListCount
int ScheduleCluster
int NumClusters
int PlayDoh
char aggr_list_sched
dagDPG
legoRegionRegion
machineMachine
int BypassLatency
legoOpTailOp
int DominatorParallelism
int CodeGen
int CreateSchedVizFiles
int TreeTraversalSched
int NoSpeculation
int AllowPBRSpeculation
int AllowLoadSpeculation
int AllowOnlySafeSpeculation
int AllowDownwardCodeMotion
int AllowMultiWayBR
FILE * SchedFile
FILE * ListFile
int bus_needed
int current_block_int
legoOpcurrent_before_op
ListIterator Op
vector< BigListElement > * List
dagDPG
legoRegionRegion
machineMachine
legoOpTailOp
FILE * SchedFile
legoOpcurrent_before_op


Member Typedef Documentation

typedef vector< BigListElement >::iterator list_scheduler::ListIterator [protected]
 

Definition at line 24 of file src/list_scheduler.H.

typedef vector< BigListElement >::iterator list_scheduler::ListIterator [protected]
 

Definition at line 24 of file include/list_scheduler.H.

Referenced by GetCandidateNode(), GetCandidateNodeTree(), and list_scheduler().


Constructor & Destructor Documentation

list_scheduler::list_scheduler  )  [inline]
 

Definition at line 589 of file include/list_scheduler.H.

list_scheduler::list_scheduler legoRegion region,
machine MDES,
knobs Knobs
 

Definition at line 7629 of file list_scheduler.C.

References BypassLatency, current_block_int, derr, DominatorParallelism, DPG, exit(), machine::getBypassStatus(), legoRegion::GetDAG(), legoRegion::GetEntryOpsPtr(), dag::GetList(), dag::GetListSize(), opList::GetOpPtr(), i, Knobs, List, ListCount, ListHead, ListIterator, ListTail, Machine, Region, SetKnobs(), TailOp, TRUE, and UNSCHEDULED.

list_scheduler::~list_scheduler  )  [inline]
 

Definition at line 591 of file include/list_scheduler.H.

References CreateSchedVizFiles, fclose(), ListFile, and SchedFile.

list_scheduler::list_scheduler  )  [inline]
 

Definition at line 589 of file src/list_scheduler.H.

list_scheduler::list_scheduler legoRegion region,
machine MDES,
knobs Knobs
 

list_scheduler::~list_scheduler  )  [inline]
 

Definition at line 591 of file src/list_scheduler.H.

References CreateSchedVizFiles, fclose(), ListFile, and SchedFile.


Member Function Documentation

void list_scheduler::add_to_existing_attr attrs Attr,
legoOprd NewOprd
[protected]
 

void list_scheduler::add_to_existing_attr attrs Attr,
legoOprd NewOprd
[protected]
 

Definition at line 2445 of file list_scheduler.C.

References copy_operand(), derr, attrs::GetAttrOprdPtr(), legoOprd::GetNextOprdPtr(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), and legoOprd::GetOprdType().

Referenced by FixLiveVarsDown(), FixLiveVarsFromUses(), and FixLiveVarsUp().

int list_scheduler::AddCopyOps legoOp op  )  [protected]
 

int list_scheduler::AddCopyOps legoOp op  )  [protected]
 

Definition at line 1243 of file list_scheduler.C.

References AddLcAttribute(), AddMidOp(), AllowDownwardCodeMotion, Back, BRCF, BRCT, BRU, Chains, CMPP_W_TRUE_UN_UN, copy_dynamic_op_increase, copy_ops_added, current_before_op, ddderr, dderr, derr, DescendantofBlock(), DoTheMessyStuff(), edgeTypes, ET_REGANTI, ET_REGFLOW, ET_REGOUT, FALSE, fileTypes, FindLcAttribute(), FindParentRegionType(), Front, FT_CR, FT_FPR, FT_GPR, FT_PR, attrs::GetAttrOprdPtr(), legoOp::GetDestOprdPtr(), chains::GetDUChains(), legoRegion::GetExitOpsPtr(), legoOprd::GetLiteralDouble(), legoOp::GetNextLink(), oprdList::GetNextListPtr(), opList::GetNextListPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), opList::GetOpPtr(), legoOprd::GetOprdFileType(), oprdList::GetOprdPtr(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoOp::GetPredOprdPtr(), legoOp::GetPredVectorPtr(), legoOp::GetPrevLink(), legoOp::GetSchedTime(), chains::GetUDChains(), L_build_oper_mdes_info(), L_create_ru_info_oper(), List, ListCount, ListPtr, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), MaxOpId, MOVE, MOVEF_D, NO_RENAMING_CONFLICT, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), Op, OT_LITERAL_D, OT_REG, OT_UNDEFINED, printf(), Region, RENAMING_CONFLICT, RT_PROC, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Set(), DagNode::SetDepth(), legoOp::SetDestOprdPtr(), DagNode::SetHeight(), legoOprd::SetLiteralDouble(), oprdList::SetNextListPtr(), DagNode::SetOp(), legoOp::SetOpcode(), oprdList::SetOprdPtr(), legoOprd::SetOprdType(), legoOprd::SetParentOpPtr(), legoOp::SetPredOprdPtr(), legoOp::SetPredVectorPtr(), legoOp::SetSrcOprdPtr(), DagNode::SetWeight(), TRUE, and UNSCHEDULED.

Referenced by Rename().

int list_scheduler::anyliveout legoOp op,
opEdges edge
[protected]
 

int list_scheduler::anyliveout legoOp op,
opEdges edge
[protected]
 

Definition at line 1928 of file list_scheduler.C.

References BRL, FindLiveAttribute(), FindReturnMacro(), attrs::GetAttrOprdPtr(), legoOp::GetDestOprdPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpcode(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), and OT_MACRO.

Referenced by DoTheMessyStuff(), IsMergeProblem(), and ScheduleOp().

int list_scheduler::AnyOutputDepsBetween legoOp op,
legoOp op_in_multiop,
legoOprd compare_dest
[protected]
 

int list_scheduler::AnyOutputDepsBetween legoOp op,
legoOp op_in_multiop,
legoOprd compare_dest
[protected]
 

Definition at line 2623 of file list_scheduler.C.

References dag::AreOpsDependent(), DPG, FindLcAttribute(), legoOp::GetDestOprdPtr(), legoOp::GetInListPtr(), legoOprd::GetNextOprdPtr(), opList::GetOpPtr(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), legoOp::GetPrevLink(), NO, OT_MACRO, OT_REG, OT_UNDEFINED, and YES.

void list_scheduler::BuildReadyTimes ListIterator  Node,
int  IssueCycle
[protected]
 

void list_scheduler::BuildReadyTimes ListIterator  Node,
int  IssueCycle
[protected]
 

Referenced by GetCandidateNode(), and GetCandidateNodeTree().

int list_scheduler::checkIssue int   )  [protected]
 

int list_scheduler::checkIssue int   )  [protected]
 

void list_scheduler::copy_operand legoOprd Src,
legoOprd Target
[protected]
 

void list_scheduler::copy_operand legoOprd Src,
legoOprd Target
[protected]
 

Definition at line 2425 of file list_scheduler.C.

References legoOprd::GetOprdDataType(), legoOprd::GetOprdFileType(), legoOprd::GetOprdIntValue(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdRegStyle(), legoOprd::GetOprdRegType(), legoOprd::GetOprdType(), legoOprd::GetValid(), legoOprd::SetIntValue(), legoOprd::SetOprdDataType(), legoOprd::SetOprdFileType(), legoOprd::SetOprdRegNum(), legoOprd::SetOprdRegStyle(), legoOprd::SetOprdRegType(), legoOprd::SetOprdType(), and legoOprd::SetValid().

Referenced by add_to_existing_attr(), and create_new_attr().

void list_scheduler::create_new_attr opEdges Edge,
legoOprd Oprd,
legoProc Proc
[protected]
 

void list_scheduler::create_new_attr opEdges Edge,
legoOprd Oprd,
legoProc Proc
[protected]
 

Definition at line 2491 of file list_scheduler.C.

References AddLiveAttribute(), copy_operand(), and derr.

Referenced by FixLiveVarsDown(), FixLiveVarsFromUses(), and FixLiveVarsUp().

int list_scheduler::DescendantofBlock int  input_block_int,
legoOp op
[protected]
 

int list_scheduler::DescendantofBlock int  input_block_int,
legoOp op
[protected]
 

Definition at line 68 of file list_scheduler.C.

References derr, FALSE, legoOp::GetParentBlockPtr(), legoRegion::GetParents(), regionList::GetRegionPtr(), Region, and TRUE.

Referenced by AddCopyOps(), DoTheMessyStuff(), IsDominatorParallelwithRenameGeneral(), IsMergeProblem(), IsRemoteMergeProblem(), and Rename().

int list_scheduler::DescendantofCurBlockPtr ListIterator  Node  )  [protected]
 

int list_scheduler::DescendantofCurBlockPtr ListIterator  Node  )  [protected]
 

Referenced by GetCandidateNodeTree().

int list_scheduler::DominatorParallel  )  [inline]
 

Definition at line 607 of file src/list_scheduler.H.

References DominatorParallelism.

int list_scheduler::DominatorParallel  )  [inline]
 

Definition at line 607 of file include/list_scheduler.H.

References DominatorParallelism.

Referenced by ScheduleRegion().

int list_scheduler::DoMoreMessyStuff legoOp op,
int  Final_Pass
[protected]
 

int list_scheduler::DoMoreMessyStuff legoOp op,
int  Final_Pass
[protected]
 

Definition at line 3774 of file list_scheduler.C.

References AddLcAttribute(), AddMidOp(), AllowMultiWayBR, ATTR_LC, ATTR_TBLNAME, attrTypes, Back, blocks_removed, BRCF, BRCT, BRU, Chains, current_before_op, ddderr, dderr, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Delete(), DT_I, DUMMY_BR, edgeTypes, ET_CNTL, FALSE, FindControlEdge(), FindLcAttribute(), FindOpWeight(), FindParentRegionType(), Front, attrs::GetAttrOprdPtr(), attrList::GetAttrPtr(), attrs::GetAttrString(), attrList::GetAttrType(), legoRegion::GetChildren(), GetComplementaryDestOprd(), legoPSet< void * >::GetCount(), legoOp::GetDestOprdPtr(), chains::GetDUChains(), legoOp::GetInListPtr(), legoPSet< void * >::GetItem(), legoOprd::GetLiteralControlBlock(), legoOprd::GetLiteralULongLong(), legoOp::GetNextLink(), regionList::GetNextListPtr(), oprdList::GetNextListPtr(), opList::GetNextListPtr(), attrList::GetNextListPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpAttrListPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), opList::GetOpPtr(), oprdList::GetOprdPtr(), legoOprd::GetOprdType(), legoOp::GetOutListPtr(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoRegion::GetParentPtr(), legoOp::GetPrevLink(), legoRegion::GetRegionAttrListPtr(), legoRegion::GetRegionId(), regionList::GetRegionPtr(), legoRegion::GetRegionType(), legoOp::GetRUInfoPtr(), legoOp::GetSchedTime(), legoOp::GetSrcOprdPtr(), chains::GetUDChains(), opList::GetWeight(), i, IsBranchOpButNotBRL(), legoOp::IsDummy(), L_build_oper_mdes_info(), L_create_ru_info_oper(), L_delete_ru_info_oper(), L_free_oper_mdes_info(), LegoFatal(), LegoNonFatal(), List, ListCount, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), Machine, mdes_latency_count(), multiway_dynamic_op_reduction, NO, NO_RENAMING_CONFLICT, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), operand_ready_times, machine::opLatency(), OT_LITERAL_CB, OT_LITERAL_D, OT_LITERAL_I, OT_LITERAL_ULLNG, PrepareToDie(), Region, RemoveEdge(), RemoveFinalOp(), RemoveLcAttribute(), RemoveLiveAttribute(), RemoveMidOp(), RENAMING_CONFLICT, RT_BB, RT_HB, RT_PROC, RT_SB, RT_TREE, RTS, RU_schedule_op_at(), RU_unschedule_op(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Set(), legoRegion::SetChildren(), opEdges::SetFromOpId(), opEdges::SetFromOpPtr(), legoOprd::SetIntValue(), legoOprd::SetLiteralControlBlock(), legoOprd::SetLiteralDouble(), legoOprd::SetLiteralInteger(), legoOprd::SetLiteralULongLong(), regionList::SetNextListPtr(), opList::SetNextListPtr(), oprdList::SetNextListPtr(), legoOprd::SetNextOprdPtr(), legoOp::SetOpcode(), opList::SetOpId(), opList::SetOpPtr(), legoOprd::SetOprdDataType(), oprdList::SetOprdPtr(), legoOprd::SetOprdType(), legoOp::SetOutListPtr(), legoOprd::SetParentAttrPtr(), legoOprd::SetParentOpPtr(), legoRegion::SetParents(), legoOp::SetPredOprdPtr(), legoOprd::SetPrevOprdPtr(), legoOp::SetRUInfoPtr(), legoOprd::SetValid(), opList::SetWeight(), TRUE, and UpdatePredecessorBranch().

Referenced by ScheduleOp().

int list_scheduler::DoTheMessyStuff legoOp op,
legoRegion proc_ptr
[protected]
 

int list_scheduler::DoTheMessyStuff legoOp op,
legoRegion proc_ptr
[protected]
 

Definition at line 2675 of file list_scheduler.C.

References AddDPRemoveAttribute(), AddLcAttribute(), AddMidOp(), AllowDownwardCodeMotion, anyliveout(), dag::AreOpsDependent(), Back, BRCF, BRCT, BRL, BRU, C_MERGE, Chains, CMPP, current_before_op, ddderr, dderr, dead_ops, DEFINE, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Delete(), DescendantofBlock(), downward_dynamic_op_reduction, downward_motion_ops, DPG, DUMMY_BR, edgeTypes, FALSE, FCMPP_D_TRUE_AC_AC, FindControlEdge(), FindMaxEdgeAttrId(), FixLiveVarsDown(), Front, attrList::GetAttrPtr(), legoOp::GetDestOprdPtr(), chains::GetDUChains(), legoRegion::GetExitOpsPtr(), legoOprd::GetLiteralControlBlock(), attrs::GetNextAttrPtr(), legoOp::GetNextLink(), attrList::GetNextListPtr(), oprdList::GetNextListPtr(), opList::GetNextListPtr(), legoOprd::GetNextOprdPtr(), DagNode::GetOp(), legoOp::GetOpAttrListPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), opList::GetOpPtr(), oprdList::GetOprdPtr(), legoOprd::GetOprdType(), legoOp::GetOutListPtr(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoOp::GetPredOprdPtr(), legoOp::GetPrevLink(), legoOp::GetSchedTime(), legoOp::GetSrcOprdPtr(), chains::GetUDChains(), legoOp::IsDummy(), IsStoreOp(), L_build_oper_mdes_info(), L_create_ru_info_oper(), LegoFatal(), List, ListCount, ListPtr, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), MaxOpId, NO, NO_RENAMING_CONFLICT, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), Op, OT_LITERAL_I, OT_MACRO, OT_REG, PBRA, PBRR, BigListElement::Predecessors, Region, RemoveMidOp(), BigListElement::RemoveSuccessor(), RENAMING_CONFLICT, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Set(), attrList::SetAttrId(), attrs::SetAttrId(), attrList::SetAttrPtr(), legoOprd::SetLiteralInteger(), attrs::SetNextAttrPtr(), oprdList::SetNextListPtr(), legoOprd::SetNextOprdPtr(), DagNode::SetOp(), legoOp::SetOpId(), oprdList::SetOprdPtr(), legoOprd::SetOprdType(), legoOp::SetPredOprdPtr(), legoOp::SetSchedTime(), BigListElement::Successors, TRUE, UNSCHEDULED, unspeculated_ops, unspeculated_pbr_ops, and YES.

Referenced by AddCopyOps(), and ScheduleOp().

int list_scheduler::FixLiveVarsDown legoOp op,
opEdges edge,
legoProc proc_ptr
[protected]
 

int list_scheduler::FixLiveVarsDown legoOp op,
opEdges edge,
legoProc proc_ptr
[protected]
 

Definition at line 2541 of file list_scheduler.C.

References add_to_existing_attr(), BRL, create_new_attr(), DBL_P2, FindLiveAttribute(), legoOprd::GetNextOprdPtr(), legoOp::GetOpcode(), legoOprd::GetOprdType(), legoOp::GetPredOprdPtr(), legoOp::GetSrcOprdPtr(), INT_P1, OT_MACRO, OT_REG, legoOprd::SetOprdRegNum(), and legoOprd::SetOprdType().

Referenced by DoTheMessyStuff().

int list_scheduler::FixLiveVarsFromUses legoOprd use,
legoOp before_op,
legoProc proc_ptr
[protected]
 

int list_scheduler::FixLiveVarsFromUses legoOprd use,
legoOp before_op,
legoProc proc_ptr
[protected]
 

Definition at line 2597 of file list_scheduler.C.

References add_to_existing_attr(), create_new_attr(), FindLiveAttribute(), edgeList::GetEdgePtr(), legoRegion::GetInEdgesPtr(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoRegion::GetParents(), and regionList::GetRegionPtr().

Referenced by GetCandidateNodeTree(), and IsDominatorParallelwithRenameGeneral().

int list_scheduler::FixLiveVarsUp legoOp op,
legoOp before_op,
legoProc proc_ptr
[protected]
 

int list_scheduler::FixLiveVarsUp legoOp op,
legoOp before_op,
legoProc proc_ptr
[protected]
 

Definition at line 2507 of file list_scheduler.C.

References add_to_existing_attr(), create_new_attr(), FindLiveAttribute(), legoOp::GetDestOprdPtr(), edgeList::GetEdgePtr(), legoRegion::GetInEdgesPtr(), legoOprd::GetNextOprdPtr(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoRegion::GetParents(), regionList::GetRegionPtr(), and OT_UNDEFINED.

Referenced by IsDominatorParallelwithRename(), IsDominatorParallelwithRenameGeneral(), and ScheduleOp().

void list_scheduler::ForwardGlobalRename legoOprd def,
int  RegNum,
legoOprd orig_def
[protected]
 

void list_scheduler::ForwardGlobalRename legoOprd def,
int  RegNum,
legoOprd orig_def
[protected]
 

Definition at line 1152 of file list_scheduler.C.

References Chains, dderr, FALSE, chains::GetDUChains(), oprdList::GetNextListPtr(), legoOp::GetOpId(), oprdList::GetOprdPtr(), legoOprd::GetOprdRegNum(), legoOprd::GetParentOpPtr(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), ReverseGlobalRename(), and legoOprd::SetOprdRegNum().

Referenced by GlobalRename(), and ReverseGlobalRename().

vector< BigListElement >::iterator list_scheduler::GetCandidateNode int   )  [protected]
 

vector< BigListElement >::iterator list_scheduler::GetCandidateNode int   )  [protected]
 

Definition at line 1053 of file list_scheduler.C.

References BuildReadyTimes(), CreateSchedVizFiles, derr, fprintf(), List, ListFile, ListIterator, ListPtr, ListTail, PredecessorsScheduled(), UNSCHEDULED, and YES.

Referenced by Schedule().

vector< BigListElement >::iterator list_scheduler::GetCandidateNodeTree int  ,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass
[protected]
 

vector< BigListElement >::iterator list_scheduler::GetCandidateNodeTree int  ,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass
[protected]
 

Definition at line 636 of file list_scheduler.C.

References AddLcAttribute(), mdes_compatable_alt_st::alt, BRL, BuildReadyTimes(), Chains, clock(), clocks_per_sec, Mdes_Info::compatable_alts, CreateSchedVizFiles, current_before_op, dderr, derr, DescendantofCurBlockPtr(), dsld_operand_ready_times, DUMMY_BR, elapsed, elapsed_c, FALSE, falsedep_renamed_ops, FindLiveAttribute(), finish_live, FixLiveVarsFromUses(), fprintf(), chains::GetDUChains(), legoOp::GetNextLink(), oprdList::GetNextListPtr(), opEdges::GetNextOpEdgePtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpcode(), oprdList::GetOprdPtr(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoOp::GetSchedTime(), i, mdes_alt_st::id, Knobs, List, ListFile, ListIterator, ListPtr, ListTail, live_call_number, liveness_calls, LiveVariables(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), mdes_latency_count(), mdes_operand_latency(), mdes_total_slots, NO, NO_RENAMING_CONFLICT, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), now, operand_ready_times, OT_LITERAL_I, OT_UNDEFINED, PredecessorsScheduled(), _RU_Info::proc_opc, knobs::Read(), ReDoLiveVarsAfterGlobal, ReDoLiveVarsNextTreegion, Region, RemoveLiveAttribute(), Rename(), RU_can_schedule_op(), knobs::SetDefaultPanel(), legoOprd::SetLiteralInteger(), legoOprd::SetOprdType(), start_live, strcmp(), then, time(), total_live, TRUE, true_dsld_operand_ready_times, true_operand_ready_times, TruePredecessorsScheduled(), UNSCHEDULED, and YES.

Referenced by Schedule().

legoOprd* list_scheduler::GetComplementaryDestOprd legoOp cmppop  )  [protected]
 

legoOprd * list_scheduler::GetComplementaryDestOprd legoOp cmppop  )  [protected]
 

Definition at line 3555 of file list_scheduler.C.

References CMPP, FCMPP_D_TRUE_AC_AC, legoOp::GetDestOprdPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), legoOprd::GetOprdDataType(), legoOprd::GetOprdFileType(), legoOprd::GetOprdIntValue(), legoOprd::GetOprdOmega(), legoOprd::GetOprdRegStyle(), legoOprd::GetOprdRegType(), legoOprd::GetOprdType(), LegoNonFatal(), MaxRegNum, OT_UNDEFINED, legoOprd::SetIntValue(), legoOp::SetOpcode(), legoOprd::SetOprdDataType(), legoOprd::SetOprdFileType(), legoOprd::SetOprdOmega(), legoOprd::SetOprdRegNum(), legoOprd::SetOprdRegStyle(), legoOprd::SetOprdRegType(), and legoOprd::SetOprdType().

Referenced by DoMoreMessyStuff().

void list_scheduler::GlobalRename legoOp op,
int  RegNum,
int  IncMaxRegNum
[protected]
 

void list_scheduler::GlobalRename legoOp op,
int  RegNum,
int  IncMaxRegNum
[protected]
 

Definition at line 1213 of file list_scheduler.C.

References dderr, FALSE, ForwardGlobalRename(), legoOp::GetDestOprdPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpId(), legoOprd::GetOprdType(), MaxRegNum, MergeProblemDuringGlobal, OT_UNDEFINED, RemoveAntiDepsAfterDefRename(), RemoveOutputDepsAfterRenameUp(), and legoOprd::SetOprdRegNum().

Referenced by Rename().

int list_scheduler::IsDominatorParallelwithRename legoOp op,
int  readytime,
legoTreegion treegion,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass
[protected]
 

int list_scheduler::IsDominatorParallelwithRename legoOp op,
int  readytime,
legoTreegion treegion,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass
[protected]
 

Definition at line 5768 of file list_scheduler.C.

References AddDPRemoveAttribute(), AddMidOp(), C_MERGE, clock(), clocks_per_sec, CodeGen, combine_dynamic_op_reduction, combine_renamed_ops, current_before_op, dderr, derr, dom_parallel_ops, elapsed, elapsed_c, FALSE, FindLcAttribute(), FindLiveAttribute(), finish_live, FixLiveVarsUp(), legoOp::GetDestOprdPtr(), legoOp::GetDuplicateOpsPtr(), legoOp::GetNextLink(), opList::GetNextListPtr(), opEdges::GetNextOpEdgePtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), opList::GetOpPtr(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoRegion::GetParents(), legoOp::GetPredOprdPtr(), legoOp::GetPrevLink(), regionList::GetRegionPtr(), legoTreegion::GetRoot(), legoOp::GetSchedTime(), legoOp::GetSrcOprdPtr(), opList::GetValid(), IsBranchOp(), legoOp::IsDummy(), Knobs, live_call_number, liveness_calls, LiveVariables(), MergeBlockIdAttributes(), NO, now, OT_REG, PBRA, PBRR, ReDoLiveVarsAfterGlobal, ReDoLiveVarsNextTreegion, RemoveFinalOp(), RemoveLiveAttribute(), RemoveMidOp(), Rename(), RENAMING_CONFLICT, legoOp::SetSchedTime(), start_live, temp_dom_op_count, then, time(), total_live, TreeTraversalSched, TRUE, and YES.

int list_scheduler::IsDominatorParallelwithRenameGeneral legoOp op,
int  readytime,
legoTreegion treegion,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass
[protected]
 

int list_scheduler::IsDominatorParallelwithRenameGeneral legoOp op,
int  readytime,
legoTreegion treegion,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass
[protected]
 

Definition at line 5982 of file list_scheduler.C.

References AddDPRemoveAttribute(), AddLcAttribute(), AddMidOp(), ATTR_TBLNAME, BRCF, BRCT, BRL, BRU, C_MERGE, Chains, clock(), clocks_per_sec, CMPP, CodeGen, combine_dynamic_op_reduction, combine_renamed_ops, current_before_op, DBL_P2, dderr, DEFINE, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Delete(), DescendantofBlock(), dom_parallel_ops, dperr, elapsed, elapsed_c, FALSE, FCMPP_D_TRUE_AC_AC, FindLcAttribute(), FindLiveAttribute(), finish_live, FixLiveVarsFromUses(), FixLiveVarsUp(), FS_INC_D_C3, FT_BTR, FT_PR, attrs::GetAttrOprdPtr(), attrList::GetAttrType(), legoOp::GetDestOprdPtr(), chains::GetDUChains(), edgeList::GetEdgePtr(), opEdges::GetFromOpPtr(), legoOprd::GetLiteralControlBlock(), legoOprd::GetLiteralDouble(), legoOprd::GetLiteralFloat(), legoOprd::GetLiteralInteger(), legoOprd::GetLiteralLabel(), legoOprd::GetLiteralPredicate(), legoOprd::GetLiteralString(), legoOp::GetNextLink(), oprdList::GetNextListPtr(), attrList::GetNextListPtr(), opEdges::GetNextOpEdgePtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpAttrListPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), legoOprd::GetOprdFileType(), oprdList::GetOprdPtr(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), legoRegion::GetOutEdgesPtr(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoRegion::GetParents(), legoOp::GetPredOprdPtr(), legoOp::GetPrevLink(), regionList::GetRegionPtr(), legoTreegion::GetRoot(), legoOp::GetRUInfoPtr(), legoOp::GetSchedTime(), legoOp::GetSrcOprdPtr(), chains::GetUDChains(), mdes_alt_st::id, INT_P1, IsBranchOpButNotBRL(), legoOp::IsDummy(), IsStoreOp(), Knobs, LegoFatal(), live_call_number, liveness_calls, LiveVariables(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), MergeBlockIdAttributes(), NO, NO_RENAMING_CONFLICT, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), now, OP, OT_LITERAL_CB, OT_LITERAL_D, OT_LITERAL_F, OT_LITERAL_I, OT_LITERAL_L, OT_LITERAL_P, OT_LITERAL_S, OT_LITERAL_VO, OT_MACRO, OT_REG, OT_UNDEFINED, knobs::Read(), ReDoLiveVarsAfterGlobal, ReDoLiveVarsNextTreegion, Region, RemoveFinalOp(), RemoveLiveAttribute(), RemoveMidOp(), Rename(), RENAMING_CONFLICT, RU_unschedule_op(), S_B_V1, _RU_Info::selected_alt, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Set(), knobs::SetDefaultPanel(), legoOprd::SetLiteralDouble(), oprdList::SetNextListPtr(), legoOprd::SetNextOprdPtr(), oprdList::SetOprdPtr(), legoOprd::SetOprdType(), legoOp::SetPredOprdPtr(), legoOp::SetSchedTime(), _RU_Info::slot_used, start_live, strcmp(), temp_dom_op_count, then, time(), total_live, TreeTraversalSched, TRUE, UNSCHEDULED, and YES.

Referenced by Schedule().

int list_scheduler::IsMergeProblem legoOprd orig_def  )  [protected]
 

int list_scheduler::IsMergeProblem legoOprd orig_def  )  [protected]
 

Definition at line 1682 of file list_scheduler.C.

References anyliveout(), Chains, dderr, DescendantofBlock(), FALSE, FindLcAttribute(), chains::GetDUChains(), edgeList::GetEdgePtr(), legoRegion::GetInEdgesPtr(), edgeList::GetNextListPtr(), oprdList::GetNextListPtr(), oprdList::GetOprdPtr(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoOp::GetPrevLink(), chains::GetUDChains(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), Region, and TRUE.

Referenced by Rename().

int list_scheduler::IsRemoteMergeProblem legoOprd def,
legoOprd orig_def
[protected]
 

int list_scheduler::IsRemoteMergeProblem legoOprd def,
legoOprd orig_def
[protected]
 

Definition at line 1659 of file list_scheduler.C.

References AddLcAttribute(), dderr, DescendantofBlock(), FALSE, FindParentRegionType(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), OT_LITERAL_I, Region, RT_PROC, legoOprd::SetLiteralInteger(), legoOprd::SetOprdType(), and TRUE.

Referenced by ReverseGlobalRename().

void list_scheduler::PlaceBranchesLast  )  [protected]
 

void list_scheduler::PlaceBranchesLast  )  [protected]
 

Definition at line 5254 of file list_scheduler.C.

References AddMidOp(), legoPSet< void * >::GetCount(), legoPSet< void * >::GetItem(), legoOp::GetNextLink(), legoOp::GetPrevLink(), legoRegion::GetRegionType(), i, IsBranchOpButNotBRL(), NO, Region, RemoveMidOp(), RT_BB, total_branch_multiops, and total_branch_ops.

Referenced by Schedule().

void list_scheduler::PlacePBRsJustBeforeBranches  )  [protected]
 

void list_scheduler::PlacePBRsJustBeforeBranches  )  [protected]
 

Definition at line 5056 of file list_scheduler.C.

References AddLcAttribute(), AddMidOp(), Chains, ddderr, DUMMY_BR, DUMMY_BRANCH, FALSE, FindLcAttribute(), FindMaxEdgeAttrId(), FindParentRegionType(), legoProc::GetAttrDictionary(), attrList::GetAttrPtr(), legoPSet< void * >::GetCount(), legoPSet< void * >::GetItem(), attrs::GetNextAttrPtr(), legoOp::GetNextLink(), attrList::GetNextListPtr(), oprdList::GetNextListPtr(), legoOp::GetOpAttrListPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), oprdList::GetOprdPtr(), legoOprd::GetParentOpPtr(), legoOp::GetPrevLink(), legoRegion::GetRegionType(), legoOp::GetSchedTime(), legoOp::GetSrcOprdPtr(), chains::GetUDChains(), i, IsBranchOp(), LegoFatal(), LegoNonFatal(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), MaxOpId, NO, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), PBRA, PBRR, Region, RemoveMidOp(), RT_BB, RT_PROC, attrList::SetAttrId(), attrs::SetAttrId(), attrList::SetAttrPtr(), attrs::SetNextAttrPtr(), legoOp::SetOpId(), and legoOp::SetSchedTime().

Referenced by Schedule().

int list_scheduler::PredecessorsScheduled ListIterator  Node  )  [protected]
 

int list_scheduler::PredecessorsScheduled ListIterator  Node  )  [protected]
 

Referenced by GetCandidateNode(), and GetCandidateNodeTree().

void list_scheduler::PrepareToDie legoOp op  )  [protected]
 

void list_scheduler::PrepareToDie legoOp op  )  [protected]
 

Definition at line 3600 of file list_scheduler.C.

References AddDPRemoveAttribute(), AddMidOp(), Back, current_before_op, ddderr, edgeTypes, Front, legoOp::GetNextLink(), legoOp::GetOpId(), legoOp::GetPrevLink(), legoOp::GetSchedTime(), LegoFatal(), List, NO, RemoveFinalOp(), RemoveFirstOp(), RemoveMidOp(), RemoveVeryLastOp(), legoOp::SetSchedTime(), and UNSCHEDULED.

Referenced by DoMoreMessyStuff().

void list_scheduler::RemoveAntiDepsAfterDefRename legoOprd renamed_def  )  [protected]
 

void list_scheduler::RemoveAntiDepsAfterDefRename legoOprd renamed_def  )  [protected]
 

Definition at line 2281 of file list_scheduler.C.

References Back, BRL, DBL_P2, DBL_RET, edgeTypes, ET_REGANTI, FALSE, Front, legoOp::GetDestOprdPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), INT_P1, List, OT_MACRO, Region, temperr, and TRUE.

Referenced by GlobalRename(), and SimpleRename().

void list_scheduler::RemoveAntiDepsAfterUseRename legoOprd renamed_use  )  [protected]
 

void list_scheduler::RemoveAntiDepsAfterUseRename legoOprd renamed_use  )  [protected]
 

Definition at line 2176 of file list_scheduler.C.

References Back, BRL, DBL_P2, DBL_RET, edgeTypes, ET_REGANTI, FALSE, Front, legoOprd::GetNextOprdPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoOp::GetSrcOprdPtr(), INT_P1, List, OT_MACRO, Region, temperr, and TRUE.

void list_scheduler::RemoveOutputDepsAfterRename legoOprd renamed_def  )  [protected]
 

void list_scheduler::RemoveOutputDepsAfterRename legoOprd renamed_def  )  [protected]
 

Definition at line 1975 of file list_scheduler.C.

References Back, edgeTypes, ET_REGOUT, FALSE, Front, legoOp::GetDestOprdPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpId(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), List, OT_MACRO, Region, temperr, and TRUE.

Referenced by SimpleRename().

void list_scheduler::RemoveOutputDepsAfterRenameUp legoOprd renamed_def  )  [protected]
 

void list_scheduler::RemoveOutputDepsAfterRenameUp legoOprd renamed_def  )  [protected]
 

Definition at line 2101 of file list_scheduler.C.

References Back, edgeTypes, ET_REGOUT, FALSE, Front, legoOp::GetDestOprdPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpId(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), List, OT_MACRO, Region, temperr, and TRUE.

Referenced by GlobalRename().

int list_scheduler::Rename legoOp op,
int  RegNum,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass,
int  IncMaxRegNum,
int  Hazardous
[protected]
 

int list_scheduler::Rename legoOp op,
int  RegNum,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass,
int  IncMaxRegNum,
int  Hazardous
[protected]
 

Definition at line 1756 of file list_scheduler.C.

References AddCopyOps(), Chains, dderr, derr, DescendantofBlock(), FALSE, legoOp::GetDestOprdPtr(), chains::GetDUChains(), oprdList::GetNextListPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpId(), oprdList::GetOprdPtr(), legoOprd::GetOprdRegType(), legoOprd::GetOprdType(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), legoOp::GetPrevLink(), GlobalRename(), IsMergeProblem(), Knobs, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), MergeProblemDuringGlobal, NO_RENAMING_CONFLICT, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), OT_REG, OT_UNDEFINED, knobs::Read(), Region, RENAMING_CONFLICT, RT_BR, knobs::SetDefaultPanel(), SimpleRename(), strcmp(), and TRUE.

Referenced by GetCandidateNodeTree(), IsDominatorParallelwithRename(), IsDominatorParallelwithRenameGeneral(), and ScheduleOp().

void list_scheduler::ResetListPtr  )  [protected]
 

void list_scheduler::ResetListPtr  )  [protected]
 

Definition at line 1107 of file list_scheduler.C.

References derr, List, ListPtr, and UNSCHEDULED.

Referenced by Schedule().

void list_scheduler::ReverseGlobalRename legoOprd use,
int  RegNum,
legoOprd orig_def
[protected]
 

void list_scheduler::ReverseGlobalRename legoOprd use,
int  RegNum,
legoOprd orig_def
[protected]
 

Definition at line 1175 of file list_scheduler.C.

References Chains, dderr, FALSE, ForwardGlobalRename(), oprdList::GetNextListPtr(), legoOp::GetOpId(), oprdList::GetOprdPtr(), legoOprd::GetOprdRegNum(), legoOp::GetParentBlockPtr(), legoOprd::GetParentOpPtr(), chains::GetUDChains(), IsRemoteMergeProblem(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), MergeProblemDuringGlobal, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), ReDoLiveVarsAfterGlobal, ReDoLiveVarsNextTreegion, Region, legoOprd::SetOprdRegNum(), and TRUE.

Referenced by ForwardGlobalRename().

virtual legoOp* list_scheduler::Schedule int *  UsefulInstrsScheduled,
int *  scheduleLength,
knobs Knobs,
int  Final_Pass,
int  Predicated
[virtual]
 

legoOp * list_scheduler::Schedule int *  UsefulInstrsScheduled,
int *  scheduleLength,
knobs Knobs,
int  Final_Pass,
int  Predicated
[virtual]
 

Definition at line 6970 of file list_scheduler.C.

References AddLcAttribute(), AddMidOp(), machine::adjustIssueStatus(), machine::adjustWritebackStatus(), aggr_list_sched, mdes_compatable_alt_st::alt, BR_OP, BypassLatency, clock(), clocks_per_sec, CodeGen, Mdes_Info::compatable_alts, CreateSchedVizFiles, current_before_op, current_block_int, dderr, DEFINE, derr, DominatorParallelism, DT_I, elapsed, elapsed_c, FALSE, FindLcAttribute(), FindLiveAttribute(), FindParentRegionType(), finish_live, fprintf(), GetCandidateNode(), GetCandidateNodeTree(), legoPSet< void * >::GetCount(), legoPSet< void * >::GetItem(), legoOp::GetNextLink(), regionList::GetNextListPtr(), opEdges::GetNextOpEdgePtr(), legoOp::GetOpcode(), legoOp::GetOpId(), legoOp::GetParentBlockPtr(), legoRegion::GetParentPtr(), legoRegion::GetRegionId(), regionList::GetRegionPtr(), legoRegion::GetRegionType(), legoOp::GetSchedTime(), i, mdes_alt_st::id, IsDominatorParallelwithRenameGeneral(), Knobs, LegoNonFatal(), List, ListCount, ListFile, ListPtr, live_call_number, liveness_calls, LiveVariables(), Machine, mdes_latency_count(), mdes_operand_latency(), mdes_total_slots, mdes_compatable_alt_st::next, NO, NO_RENAMING_CONFLICT, now, Op, operand_ready_times, machine::opLatency(), OT_LITERAL_F, OT_LITERAL_I, PlaceBranchesLast(), PlacePBRsJustBeforeBranches(), machine::printSchedule(), _RU_Info::proc_opc, knobs::Read(), ReDoLiveVarsNextTreegion, Region, RemoveLcAttribute(), RemoveLiveAttribute(), RemoveMidOp(), RENAMING_CONFLICT, ResetListPtr(), ResourceStatus, RT_BB, RT_PROC, RT_TREE, RU_can_schedule_op(), RU_schedule_op_at(), SchedFile, ScheduleOp(), _RU_Info::selected_alt, knobs::SetDefaultPanel(), legoOprd::SetIntValue(), legoOprd::SetLiteralFloat(), legoOprd::SetLiteralInteger(), regionList::SetNextListPtr(), legoOprd::SetNextOprdPtr(), legoOprd::SetOprdDataType(), legoOprd::SetOprdType(), legoOprd::SetParentAttrPtr(), legoOprd::SetParentOpPtr(), legoOprd::SetPrevOprdPtr(), legoOp::SetSchedTime(), legoOprd::SetValid(), start_live, strcmp(), temp_dom_op_count, then, time(), machine::TinkerOptype(), TinkerOpType, total_live, TreeTraversalSched, TRUE, and YES.

Referenced by ScheduleRegion().

int list_scheduler::ScheduleOp legoOp op,
int  Cycle,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass,
int  Predicated,
int  update_at_cycle_end
[protected]
 

int list_scheduler::ScheduleOp legoOp op,
int  Cycle,
knobs Knobs,
legoRegion proc_ptr,
int  Final_Pass,
int  Predicated,
int  update_at_cycle_end
[protected]
 

Definition at line 5332 of file list_scheduler.C.

References AddLcAttribute(), AddMidOp(), AllowLoadSpeculation, AllowMultiWayBR, AllowOnlySafeSpeculation, AllowPBRSpeculation, anyliveout(), ATTR_TBLNAME, BRL, BRU, C_MERGE, clock(), clocks_per_sec, CodeGen, current_before_op, DBL_P2, DBL_RET, dderr, derr, DIV_W, DIVL_W, DoMoreMessyStuff(), DoTheMessyStuff(), elapsed, elapsed_c, FALSE, FDIV_D, FDIV_S, FindFlag(), FindLcAttribute(), FindLiveAttribute(), finish_live, FixLiveVarsUp(), FL_INC_D_C3_C3, FS_INC_D_C3, attrs::GetAttrOprdPtr(), attrList::GetAttrType(), legoOp::GetDestOprdPtr(), edgeList::GetEdgePtr(), opEdges::GetFromOpPtr(), legoOprd::GetLiteralInteger(), legoOprd::GetLiteralPredicate(), legoOp::GetNextLink(), edgeList::GetNextListPtr(), attrList::GetNextListPtr(), opEdges::GetNextOpEdgePtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpAttrListPtr(), legoOp::GetOpcode(), legoOp::GetOpId(), legoOprd::GetOprdFileType(), legoOprd::GetOprdRegNum(), legoOprd::GetOprdType(), legoRegion::GetOutEdgesPtr(), legoOp::GetParentBlockPtr(), legoRegion::GetParents(), legoOp::GetPredOprdPtr(), legoOp::GetPrevLink(), legoRegion::GetRegionId(), regionList::GetRegionPtr(), legoRegion::GetRegionType(), legoOp::GetSchedTime(), legoOp::GetSrcOprdPtr(), opEdges::GetToOpPtr(), INT_P1, INT_RET, IsBranchOpButNotBRL(), legoOp::IsDummy(), Knobs, L_B_V1_V1, LegoFatal(), live_call_number, liveness_calls, liveness_renamed_ops, LiveVariables(), Machine, NO, NO_RENAMING_CONFLICT, NoSpeculation, now, OT_LITERAL_D, OT_LITERAL_P, OT_MACRO, PBRA, PBRR, PSUEDO_OP, ReDoLiveVarsAfterGlobal, ReDoLiveVarsNextTreegion, Region, RemoveFinalOp(), RemoveLiveAttribute(), RemoveMidOp(), Rename(), RENAMING_CONFLICT, RT_BB, RT_TREE, RTS, S_B_V1, SAFE, legoOprd::SetLiteralDouble(), legoOprd::SetOprdType(), legoOp::SetSchedTime(), speculated_ops, speculative_dynamic_op_increase, start_live, then, time(), machine::TinkerOptype(), total_live, TreeTraversalSched, TRUE, UNSCHEDULED, and YES.

Referenced by Schedule().

virtual void list_scheduler::SetKnobs knobs  )  [virtual]
 

void list_scheduler::SetKnobs knobs  )  [virtual]
 

Definition at line 7582 of file list_scheduler.C.

References aggr_list_sched, AllowDownwardCodeMotion, AllowLoadSpeculation, AllowMultiWayBR, AllowOnlySafeSpeculation, AllowPBRSpeculation, CodeGen, CreateSchedVizFiles, DominatorParallelism, fopen(), legoRegion::GetRegionType(), Knobs, ListFile, NoSpeculation, PlayDoh, knobs::Read(), Region, RT_BB, RT_HB, RT_SB, SchedFile, knobs::SetDefaultPanel(), and TreeTraversalSched.

Referenced by list_scheduler().

virtual void list_scheduler::ShowParameters knobs  )  [virtual]
 

void list_scheduler::ShowParameters knobs  )  [virtual]
 

Definition at line 7567 of file list_scheduler.C.

References Knobs, knobs::Read(), and knobs::SetDefaultPanel().

Referenced by ShowAllParameters().

void list_scheduler::SimpleRename legoOp op,
int  RegNum,
int  IncMaxRegNum
[protected]
 

void list_scheduler::SimpleRename legoOp op,
int  RegNum,
int  IncMaxRegNum
[protected]
 

Definition at line 1119 of file list_scheduler.C.

References Chains, dderr, FALSE, legoOp::GetDestOprdPtr(), chains::GetDUChains(), oprdList::GetNextListPtr(), legoOprd::GetNextOprdPtr(), legoOp::GetOpId(), oprdList::GetOprdPtr(), legoOprd::GetOprdType(), legoOprd::GetParentOpPtr(), legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::Lookup(), MaxRegNum, legoHash< legoOprd *, oprdList *, legoHash_lt_pointer >::NotFound(), OT_UNDEFINED, RemoveAntiDepsAfterDefRename(), RemoveOutputDepsAfterRename(), and legoOprd::SetOprdRegNum().

Referenced by Rename().

int list_scheduler::TruePredecessorsScheduled ListIterator  Node  )  [protected]
 

int list_scheduler::TruePredecessorsScheduled ListIterator  Node  )  [protected]
 

Referenced by GetCandidateNodeTree().

void list_scheduler::UpdatePredecessorBranch legoOp op,
legoOp old_predecessor_op,
legoOp new_predecessor_op
[protected]
 

void list_scheduler::UpdatePredecessorBranch legoOp op,
legoOp old_predecessor_op,
legoOp new_predecessor_op
[protected]
 

Definition at line 3692 of file list_scheduler.C.

References ddderr, ET_CNTL, legoOp::GetInListPtr(), legoOp::GetOpId(), legoOp::GetPrevLink(), List, and opList::SetOpPtr().

Referenced by DoMoreMessyStuff().


Member Data Documentation

char list_scheduler::aggr_list_sched [protected]
 

Definition at line 34 of file src/list_scheduler.H.

Referenced by Schedule(), and SetKnobs().

int list_scheduler::AllowDownwardCodeMotion [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by AddCopyOps(), DoTheMessyStuff(), and SetKnobs().

int list_scheduler::AllowLoadSpeculation [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by ScheduleOp(), and SetKnobs().

int list_scheduler::AllowMultiWayBR [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by DoMoreMessyStuff(), ScheduleOp(), and SetKnobs().

int list_scheduler::AllowOnlySafeSpeculation [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by ScheduleOp(), and SetKnobs().

int list_scheduler::AllowPBRSpeculation [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by ScheduleOp(), and SetKnobs().

int list_scheduler::bus_needed [protected]
 

Definition at line 60 of file src/list_scheduler.H.

int list_scheduler::BypassLatency [protected]
 

Definition at line 40 of file src/list_scheduler.H.

Referenced by list_scheduler(), and Schedule().

int list_scheduler::CodeGen [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by IsDominatorParallelwithRename(), IsDominatorParallelwithRenameGeneral(), Schedule(), ScheduleOp(), and SetKnobs().

int list_scheduler::CreateSchedVizFiles [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by GetCandidateNode(), GetCandidateNodeTree(), Schedule(), SetKnobs(), and ~list_scheduler().

legoOp* list_scheduler::current_before_op [protected]
 

Definition at line 63 of file src/list_scheduler.H.

legoOp* list_scheduler::current_before_op [protected]
 

Definition at line 63 of file include/list_scheduler.H.

Referenced by AddCopyOps(), DoMoreMessyStuff(), DoTheMessyStuff(), GetCandidateNodeTree(), IsDominatorParallelwithRename(), IsDominatorParallelwithRenameGeneral(), PrepareToDie(), Schedule(), and ScheduleOp().

int list_scheduler::current_block_int [protected]
 

Definition at line 62 of file src/list_scheduler.H.

Referenced by list_scheduler(), and Schedule().

int list_scheduler::DominatorParallelism [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by DominatorParallel(), list_scheduler(), Schedule(), and SetKnobs().

dag* list_scheduler::DPG [protected]
 

Definition at line 36 of file src/list_scheduler.H.

dag* list_scheduler::DPG [protected]
 

Definition at line 36 of file include/list_scheduler.H.

Referenced by AnyOutputDepsBetween(), DoTheMessyStuff(), and list_scheduler().

vector< BigListElement >* list_scheduler::List [protected]
 

Definition at line 26 of file src/list_scheduler.H.

vector< BigListElement >* list_scheduler::List [protected]
 

Definition at line 26 of file include/list_scheduler.H.

Referenced by AddCopyOps(), DoMoreMessyStuff(), DoTheMessyStuff(), GetCandidateNode(), GetCandidateNodeTree(), list_scheduler(), PrepareToDie(), RemoveAntiDepsAfterDefRename(), RemoveAntiDepsAfterUseRename(), RemoveOutputDepsAfterRename(), RemoveOutputDepsAfterRenameUp(), ResetListPtr(), Schedule(), and UpdatePredecessorBranch().

int list_scheduler::ListCount [protected]
 

Definition at line 29 of file src/list_scheduler.H.

Referenced by AddCopyOps(), DoMoreMessyStuff(), DoTheMessyStuff(), list_scheduler(), and Schedule().

FILE * list_scheduler::ListFile [protected]
 

Definition at line 58 of file src/list_scheduler.H.

Referenced by GetCandidateNode(), GetCandidateNodeTree(), Schedule(), SetKnobs(), and ~list_scheduler().

ListIterator list_scheduler::ListHead [protected]
 

Definition at line 27 of file src/list_scheduler.H.

Referenced by list_scheduler().

ListIterator list_scheduler::ListPtr [protected]
 

Definition at line 27 of file src/list_scheduler.H.

Referenced by AddCopyOps(), DoTheMessyStuff(), GetCandidateNode(), GetCandidateNodeTree(), ResetListPtr(), and Schedule().

ListIterator list_scheduler::ListTail [protected]
 

Definition at line 27 of file src/list_scheduler.H.

Referenced by GetCandidateNode(), GetCandidateNodeTree(), and list_scheduler().

machine* list_scheduler::Machine [protected]
 

Definition at line 39 of file src/list_scheduler.H.

machine* list_scheduler::Machine [protected]
 

Definition at line 39 of file include/list_scheduler.H.

Referenced by DoMoreMessyStuff(), list_scheduler(), Schedule(), and ScheduleOp().

int list_scheduler::NoSpeculation [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by ScheduleOp(), and SetKnobs().

int list_scheduler::NumClusters [protected]
 

Definition at line 29 of file src/list_scheduler.H.

ListIterator list_scheduler::Op [protected]
 

Definition at line 64 of file src/list_scheduler.H.

Referenced by AddCopyOps(), DoTheMessyStuff(), and Schedule().

int list_scheduler::PlayDoh [protected]
 

Definition at line 33 of file src/list_scheduler.H.

Referenced by SetKnobs().

legoRegion* list_scheduler::Region [protected]
 

Definition at line 37 of file src/list_scheduler.H.

legoRegion* list_scheduler::Region [protected]
 

Definition at line 37 of file include/list_scheduler.H.

Referenced by AddCopyOps(), DescendantofBlock(), DoMoreMessyStuff(), DoTheMessyStuff(), GetCandidateNodeTree(), IsDominatorParallelwithRenameGeneral(), IsMergeProblem(), IsRemoteMergeProblem(), list_scheduler(), PlaceBranchesLast(), PlacePBRsJustBeforeBranches(), RemoveAntiDepsAfterDefRename(), RemoveAntiDepsAfterUseRename(), RemoveOutputDepsAfterRename(), RemoveOutputDepsAfterRenameUp(), Rename(), ReverseGlobalRename(), Schedule(), ScheduleOp(), and SetKnobs().

FILE* list_scheduler::SchedFile [protected]
 

Definition at line 58 of file src/list_scheduler.H.

FILE* list_scheduler::SchedFile [protected]
 

Definition at line 58 of file include/list_scheduler.H.

Referenced by Schedule(), SetKnobs(), and ~list_scheduler().

int list_scheduler::ScheduleCluster [protected]
 

Definition at line 29 of file src/list_scheduler.H.

legoOp* list_scheduler::TailOp [protected]
 

Definition at line 45 of file src/list_scheduler.H.

legoOp* list_scheduler::TailOp [protected]
 

Definition at line 45 of file include/list_scheduler.H.

Referenced by list_scheduler().

int list_scheduler::TreeTraversalSched [protected]
 

Definition at line 47 of file src/list_scheduler.H.

Referenced by IsDominatorParallelwithRename(), IsDominatorParallelwithRenameGeneral(), Schedule(), ScheduleOp(), and SetKnobs().


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