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

machine Class Reference

#include <machine.h>

List of all members.

Public Member Functions

 machine ()
 machine (knobs *)
 ~machine ()
void SetKnobs (knobs *Knobs)
 ShowParameters (knobs *Knobs)
int GetMaxScheduleLength ()
int GetNumSlots ()
void setIssueConfig ()
void setBusLatency (int value)
void setBypassStatus (int flag)
int getBypassStatus ()
enum TinkerOpType TinkerOptype (int opcode)
enum TinkerOpType TinkerOptype (legoOp *Op)
int opLatency (legoOp *Op)
int opLatency (int opcode)
int isBranchOp (legoOp *Op)
int isStoreOp (legoOp *Op)
int isLoadOp (legoOp *Op)
int isRealOp (legoOp *Op)
void adjustIssueStatus (legoOp *Op, int cycle, int slot)
void resetIssueStatus (int cycle)
void resetIssueStatus (int cycle, int cluster)
void showIssueStatus (int cycle)
enum ResourceStatus checkWbStatus (legoOp *Op)
void adjustWritebackStatus (legoOp *Op, int cycle)
void setWbStatus (int value)
int getWbStatus ()
void resetWbStatus ()
void resetMachine ()
void printSchedule ()
void printSchedule (int Cycle)
void estimateSchedule (double *TotalOps, double *TotalCycles, int assumeDP)
void initialize_lmdes (knobs *Knobs)
 machine ()
 machine (knobs *)
 ~machine ()
void SetKnobs (knobs *Knobs)
 ShowParameters (knobs *Knobs)
int GetMaxScheduleLength ()
int GetNumSlots ()
void setIssueConfig ()
void setBusLatency (int value)
void setBypassStatus (int flag)
int getBypassStatus ()
enum TinkerOpType TinkerOptype (int opcode)
enum TinkerOpType TinkerOptype (legoOp *Op)
int opLatency (legoOp *Op)
int opLatency (int opcode)
int isBranchOp (legoOp *Op)
int isStoreOp (legoOp *Op)
int isLoadOp (legoOp *Op)
int isRealOp (legoOp *Op)
void adjustIssueStatus (legoOp *Op, int cycle, int slot)
void resetIssueStatus (int cycle)
void resetIssueStatus (int cycle, int cluster)
void showIssueStatus (int cycle)
enum ResourceStatus checkWbStatus (legoOp *Op)
void adjustWritebackStatus (legoOp *Op, int cycle)
void setWbStatus (int value)
int getWbStatus ()
void resetWbStatus ()
void resetMachine ()
void printSchedule ()
void printSchedule (int Cycle)
void estimateSchedule (double *TotalOps, double *TotalCycles, int assumeDP)
void initialize_lmdes (knobs *Knobs)

Public Attributes

const int MaxScheduleLength = 8192

Protected Member Functions

void PrintSchedule (int LastCycle)
void PrintSchedule (int LastCycle)

Protected Attributes

knobsK
int clustering
int Bypass
int allocated
int NumClusters
int ClusterWidth
int BusLatency
int NumBuses
int cluster_width
int instrsWb
int LastIssueCycle
int LastWritebackCycle
int totalSlots
int * issueSlots
int(* RRT )[MaxScheduleLength]
int((* BusRRT )[MaxScheduleLength]
int((* IssueConfigInfo
legoOp *(* RRTop )[MaxScheduleLength]
knobsK
int((* IssueConfigInfo
legoOp *(* RRTop )[MaxScheduleLength]


Constructor & Destructor Documentation

machine::machine  ) 
 

Definition at line 666 of file machine.c.

References allocated, Bypass, ClusterWidth, FALSE, i, NumClusters, and TRUE.

machine::machine knobs  ) 
 

Definition at line 653 of file machine.c.

References allocated, Bypass, ClusterWidth, FALSE, K, Knobs, NumClusters, SetKnobs(), and TRUE.

machine::~machine  ) 
 

Definition at line 678 of file machine.c.

References allocated, BusRRT, clustering, i, NumBuses, RRT, RRTop, totalSlots, and TRUE.

machine::machine  ) 
 

machine::machine knobs  ) 
 

machine::~machine  ) 
 


Member Function Documentation

void machine::adjustIssueStatus legoOp Op,
int  cycle,
int  slot
 

void machine::adjustIssueStatus legoOp Op,
int  cycle,
int  slot
 

Definition at line 268 of file machine.c.

References derr, legoOp::GetOpId(), i, LastIssueCycle, MaxScheduleLength, RRT, RRTop, SchedLengthErrMsg, start, and TinkerOpType.

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

void machine::adjustWritebackStatus legoOp Op,
int  cycle
 

void machine::adjustWritebackStatus legoOp Op,
int  cycle
 

Definition at line 291 of file machine.c.

References LastWritebackCycle.

Referenced by list_scheduler::Schedule().

enum ResourceStatus machine::checkWbStatus legoOp Op  )  [inline]
 

Definition at line 105 of file src/machine.h.

References NOT_FULL, and ResourceStatus.

enum ResourceStatus machine::checkWbStatus legoOp Op  )  [inline]
 

Definition at line 105 of file include/machine.h.

References NOT_FULL, and ResourceStatus.

void machine::estimateSchedule double *  TotalOps,
double *  TotalCycles,
int  assumeDP
 

void machine::estimateSchedule double *  TotalOps,
double *  TotalCycles,
int  assumeDP
 

Definition at line 426 of file machine.c.

References BR_OP, Bypass, derr, EMPTY, FindFlag(), FindLcAttribute(), opList::GetNextListPtr(), GetOpFrequency(), legoOp::GetOpId(), opList::GetOpId(), opList::GetOpPtr(), legoOp::GetParentBlockPtr(), legoRegion::GetRegionType(), legoOp::GetSchedTime(), GetSuperblockWeight(), opList::GetValid(), legoRegion::GetWeight(), i, isRealOp(), LastIssueCycle, LastWritebackCycle, RRT, RRTop, RT_BB, RT_HB, RT_SB, SB, TinkerOptype(), totalSlots, and TRUE.

Referenced by ScheduleRegion().

int machine::getBypassStatus  )  [inline]
 

Definition at line 81 of file src/machine.h.

References Bypass.

int machine::getBypassStatus  )  [inline]
 

Definition at line 81 of file include/machine.h.

References Bypass.

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

int machine::GetMaxScheduleLength  )  [inline]
 

Definition at line 71 of file src/machine.h.

References MaxScheduleLength.

int machine::GetMaxScheduleLength  )  [inline]
 

Definition at line 71 of file include/machine.h.

References MaxScheduleLength.

int machine::GetNumSlots  )  [inline]
 

Definition at line 74 of file src/machine.h.

References totalSlots.

int machine::GetNumSlots  )  [inline]
 

Definition at line 74 of file include/machine.h.

References totalSlots.

Referenced by dag::MaxHeights().

int machine::getWbStatus  )  [inline]
 

Definition at line 110 of file src/machine.h.

References instrsWb.

int machine::getWbStatus  )  [inline]
 

Definition at line 110 of file include/machine.h.

References instrsWb.

void machine::initialize_lmdes knobs Knobs  ) 
 

void machine::initialize_lmdes knobs Knobs  ) 
 

Definition at line 613 of file machine.c.

References BusLatency, clustering, FALSE, Knobs, L_create_alloc_pool(), L_init_lmdes(), lmdes_initialized(), mdes_latency_count(), Operand_ready_pool, knobs::Read(), knobs::SetDefaultPanel(), and setIssueConfig().

Referenced by SetKnobs().

int machine::isBranchOp legoOp Op  ) 
 

int machine::isBranchOp legoOp Op  ) 
 

Definition at line 207 of file machine.c.

References BR_OP, and TinkerOptype().

Referenced by op_scheduler::BuildReadyTimes().

int machine::isLoadOp legoOp Op  ) 
 

int machine::isLoadOp legoOp Op  ) 
 

Definition at line 192 of file machine.c.

References legoOp::IsLDOp().

int machine::isRealOp legoOp Op  ) 
 

int machine::isRealOp legoOp Op  ) 
 

Definition at line 227 of file machine.c.

References legoOp::IsRealOp().

Referenced by op_scheduler::BuildReadyTimes(), and estimateSchedule().

int machine::isStoreOp legoOp Op  ) 
 

int machine::isStoreOp legoOp Op  ) 
 

Definition at line 169 of file machine.c.

References legoOp::IsSTOp().

Referenced by op_scheduler::BuildReadyTimes().

int machine::opLatency int  opcode  ) 
 

int machine::opLatency legoOp Op  ) 
 

int machine::opLatency int  opcode  ) 
 

Definition at line 66 of file machine.c.

References mdes_heuristic_alt_id(), and mdes_max_completion_time().

int machine::opLatency legoOp Op  ) 
 

Definition at line 75 of file machine.c.

References legoOp::GetBaseOpcode(), legoOp::GetRUInfoPtr(), legoOp::GetSchedTime(), mdes_heuristic_alt_id(), mdes_max_completion_time(), and RU_SELECTED_ALT_ID.

Referenced by op_scheduler::DoMoreMessyStuff(), list_scheduler::DoMoreMessyStuff(), dag_node_ordering::DoSuperblockPriorities(), list_scheduler::Schedule(), and op_scheduler::ScheduleBlock().

void machine::printSchedule int  Cycle  ) 
 

void machine::printSchedule  ) 
 

void machine::PrintSchedule int  LastCycle  )  [protected]
 

void machine::printSchedule int  Cycle  ) 
 

Definition at line 371 of file machine.c.

References exit(), MaxScheduleLength, and PrintSchedule().

void machine::printSchedule  ) 
 

Definition at line 385 of file machine.c.

References LastWritebackCycle, and PrintSchedule().

Referenced by list_scheduler::Schedule().

void machine::PrintSchedule int  LastCycle  )  [protected]
 

Definition at line 392 of file machine.c.

References i, showIssueStatus(), and totalSlots.

Referenced by printSchedule().

void machine::resetIssueStatus int  cycle,
int  cluster
 

void machine::resetIssueStatus int  cycle  ) 
 

void machine::resetIssueStatus int  cycle,
int  cluster
 

Definition at line 298 of file machine.c.

References EMPTY, exit(), i, MaxScheduleLength, RRT, and totalSlots.

void machine::resetIssueStatus int  cycle  ) 
 

Definition at line 316 of file machine.c.

References EMPTY, exit(), i, MaxScheduleLength, RRT, and totalSlots.

void machine::resetMachine  ) 
 

void machine::resetMachine  ) 
 

Definition at line 335 of file machine.c.

References EMPTY, i, LastIssueCycle, LastWritebackCycle, MaxScheduleLength, RRT, RRTop, and totalSlots.

Referenced by main(), and ScheduleRegion().

void machine::resetWbStatus  )  [inline]
 

Definition at line 111 of file src/machine.h.

References instrsWb.

void machine::resetWbStatus  )  [inline]
 

Definition at line 111 of file include/machine.h.

References instrsWb.

void machine::setBusLatency int  value  )  [inline]
 

Definition at line 78 of file src/machine.h.

References BusLatency.

void machine::setBusLatency int  value  )  [inline]
 

Definition at line 78 of file include/machine.h.

References BusLatency.

void machine::setBypassStatus int  flag  )  [inline]
 

Definition at line 80 of file src/machine.h.

References Bypass.

void machine::setBypassStatus int  flag  )  [inline]
 

Definition at line 80 of file include/machine.h.

References Bypass.

void machine::setIssueConfig  ) 
 

void machine::setIssueConfig  ) 
 

Definition at line 237 of file machine.c.

References allocated, EMPTY, FunctionName, i, MaxScheduleLength, mdes_total_slots, RRT, RRTop, totalSlots, and TRUE.

Referenced by initialize_lmdes().

void machine::SetKnobs knobs Knobs  ) 
 

void machine::SetKnobs knobs Knobs  ) 
 

Definition at line 636 of file machine.c.

References Bypass, derr, initialize_lmdes(), Knobs, knobs::Read(), and knobs::SetDefaultPanel().

Referenced by machine().

void machine::setWbStatus int  value  )  [inline]
 

Definition at line 109 of file src/machine.h.

References instrsWb.

void machine::setWbStatus int  value  )  [inline]
 

Definition at line 109 of file include/machine.h.

References instrsWb.

void machine::showIssueStatus int  cycle  ) 
 

void machine::showIssueStatus int  cycle  ) 
 

Definition at line 349 of file machine.c.

References EMPTY, exit(), i, MaxScheduleLength, RRT, and totalSlots.

Referenced by PrintSchedule().

machine::ShowParameters knobs Knobs  ) 
 

machine::ShowParameters knobs Knobs  ) 
 

Definition at line 592 of file machine.c.

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

Referenced by ShowAllParameters().

enum TinkerOpType machine::TinkerOptype legoOp Op  ) 
 

enum TinkerOpType machine::TinkerOptype int  opcode  ) 
 

enum TinkerOpType machine::TinkerOptype legoOp Op  ) 
 

Definition at line 134 of file machine.c.

References BR_OP, exit(), FP_OP, legoOp::GetBaseOpcode(), legoOp::GetOpcode(), legoOp::GetOpcodePtr(), INT_OP, legoOp::IsBranchOp(), legoOp::IsCMERGEOp(), legoOp::IsCompareOp(), legoOp::IsDEFINEOp(), legoOp::IsDUMMYBROp(), legoOp::IsFloatOp(), legoOp::IsIntegerOp(), legoOp::IsLDOp(), legoOp::IsSTOp(), MEM_OP, TinkerOptype(), and TinkerOpType.

enum TinkerOpType machine::TinkerOptype int  opcode  ) 
 

Definition at line 97 of file machine.c.

References ALLOC, BR_OP, BRDVF, BRDVI, BRU, BRW_F_F_F, C_MERGE, CMPP, CMPP_W_EV_AC_AC, CMPR_W_EV, CONTROL_MERGE, CONVDS, DEFINE, DUMMY_BR, DVLD_B, exit(), EXTS_B, FADD_S, FCMPP_D_TRUE_AC_AC, FCMPP_S_FALSE_UN_UN, FCMPR_D_TRUE, FCMPR_S_FALSE, FDSLD_INC_D_C3_C3, FDVLD_D, FLIMM, FP_OP, INT_OP, L_B_V1_V1, LDCM, LDPRED, LIMM, MEM_OP, MERGE, MOVE, MOVEF_D, MOVEF_S, MOVEGF_L, MOVEGF_U, MOVEPG, NO_OP, opcode, PBRA, PBRR, TinkerOpType, and XORCM_W.

Referenced by dag::ConstructLinearDag(), dag::ConstructTreeDag(), dag_node_ordering::DoSuperblockPriorities(), estimateSchedule(), GetGlobalWeight(), GetSuperblockWeight(), isBranchOp(), list_scheduler::Schedule(), list_scheduler::ScheduleOp(), and TinkerOptype().


Member Data Documentation

int machine::allocated [protected]
 

Definition at line 31 of file src/machine.h.

Referenced by machine(), setIssueConfig(), and ~machine().

int machine::BusLatency [protected]
 

Definition at line 35 of file src/machine.h.

Referenced by initialize_lmdes(), and setBusLatency().

int((* machine::BusRRT)[ MaxScheduleLength ] [protected]
 

Definition at line 47 of file src/machine.h.

Referenced by ~machine().

int machine::Bypass [protected]
 

Definition at line 28 of file src/machine.h.

Referenced by estimateSchedule(), getBypassStatus(), machine(), setBypassStatus(), and SetKnobs().

int machine::cluster_width [protected]
 

Definition at line 35 of file src/machine.h.

int machine::clustering [protected]
 

Definition at line 28 of file src/machine.h.

Referenced by initialize_lmdes(), and ~machine().

int machine::ClusterWidth [protected]
 

Definition at line 31 of file src/machine.h.

Referenced by machine().

int machine::instrsWb [protected]
 

Definition at line 40 of file src/machine.h.

Referenced by getWbStatus(), resetWbStatus(), and setWbStatus().

int(( * machine::IssueConfigInfo [protected]
 

Definition at line 47 of file src/machine.h.

int(( * machine::IssueConfigInfo [protected]
 

Definition at line 47 of file include/machine.h.

int * machine::issueSlots [protected]
 

Definition at line 44 of file src/machine.h.

knobs* machine::K [protected]
 

Definition at line 26 of file src/machine.h.

knobs* machine::K [protected]
 

Definition at line 26 of file include/machine.h.

Referenced by machine().

int machine::LastIssueCycle [protected]
 

Definition at line 40 of file src/machine.h.

Referenced by adjustIssueStatus(), estimateSchedule(), and resetMachine().

int machine::LastWritebackCycle [protected]
 

Definition at line 40 of file src/machine.h.

Referenced by adjustWritebackStatus(), estimateSchedule(), printSchedule(), and resetMachine().

const int machine::MaxScheduleLength = 8192
 

Definition at line 22 of file src/machine.h.

Referenced by adjustIssueStatus(), GetMaxScheduleLength(), printSchedule(), resetIssueStatus(), resetMachine(), setIssueConfig(), and showIssueStatus().

int machine::NumBuses [protected]
 

Definition at line 35 of file src/machine.h.

Referenced by ~machine().

int machine::NumClusters [protected]
 

Definition at line 31 of file src/machine.h.

Referenced by machine().

int(* machine::RRT)[MaxScheduleLength] [protected]
 

Definition at line 46 of file src/machine.h.

Referenced by adjustIssueStatus(), estimateSchedule(), resetIssueStatus(), resetMachine(), setIssueConfig(), showIssueStatus(), and ~machine().

legoOp*(* machine::RRTop)[MaxScheduleLength] [protected]
 

Definition at line 51 of file src/machine.h.

legoOp*(* machine::RRTop)[MaxScheduleLength] [protected]
 

Definition at line 51 of file include/machine.h.

Referenced by adjustIssueStatus(), estimateSchedule(), resetMachine(), setIssueConfig(), and ~machine().

int machine::totalSlots [protected]
 

Definition at line 44 of file src/machine.h.

Referenced by estimateSchedule(), GetNumSlots(), PrintSchedule(), resetIssueStatus(), resetMachine(), setIssueConfig(), showIssueStatus(), and ~machine().


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