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

schedule.H

Go to the documentation of this file.
00001 /*
00002 
00003 File:   schedule.H
00004 
00005 Purpose:
00006 
00007         Defines routines that can be used to build programs perform
00008         scheduling.
00009 
00010 Associated Files:
00011 
00012         The routines are implemented in the schedule.C file. The
00013         routines used classes & methods defined in the various included
00014         files (new.h, lego.h, ...).
00015 
00016 Change Log
00017 ----------
00018 
00019 Date            Who             What
00020 ====================================
00021 4/22/97         Sanjeev         Genesis
00022 6/17/97         Sanjeev         Changed interface to support a structure
00023                                 for retrieving stats and passing knobs object
00024 
00025 */
00026 
00027 #ifndef _SCHEDULE_H_
00028 #define _SCHEDULE_H_
00029 
00030 #include <fstream.h>
00031 #include "TinkerKnobs.H"
00032 #include "lego.H"
00033 #include "legoUtil.H"
00034 #include "machine.h"
00035 
00036 
00037 typedef struct schedulestats {
00038    int original_op_count,
00039        final_op_count;
00040    int instrs_scheduled,
00041        schedule_length;
00042    double instr_count,
00043           cycle_count;
00044 } schedule_stats;
00045 
00046 //chains* Chains; 
00047 //int MaxRegNum; 
00048 //int MaxOpId; 
00049 //int ReDoLiveVarsNextTreegion;
00050 //int live_call_number = 1;
00051 //int rdef_call_number = 1;
00052 //time_t now, then;
00053 //double elapsed, elapsed_c;
00054 extern clock_t start_live, finish_live, start_rdef, finish_rdef;
00055 extern double clocks_per_sec;
00056 extern double total_live, total_rdef; 
00057 
00058 
00059 // ShowAllParameters: show parms for the various passes used by these
00060 //    routines
00061 void ShowAllParameters( knobs *Knobs );
00062 
00063 
00064 // ScheduleRegion: schedule the region
00065 void ScheduleRegion( legoRegion *Region, schedule_stats *stats, int showstats,
00066                      ofstream *StrPtr, knobs *Knobs, int Final_Pass, int Predicated );
00067                         
00068 // ScheduleProc: schedule all regions in the proc
00069 void ScheduleProc( legoProc *ProcPtr, schedule_stats *stats, int showstats,
00070                    ofstream *StrPtr, knobs *Knobs, int Final_Pass, int Predicated );
00071 
00072 // OpScheduleProc: schedule all regions in the proc using operation scheduling
00073 //void OpScheduleProc( legoProc *ProcPtr, schedule_stats *stats, int showstats,
00074 //                    ofstream *StrPtr, knobs *Knobs, int Final_Pass, int Predicated );
00075 
00076 
00077 #endif

Generated on Mon Jul 21 20:28:54 2003 for TINKER LEGO DOC by doxygen 1.3.2