lestes::backend_v2::workers::scheduler Class Reference

Performs list scheduling on a function's body based on critical path method. More...

#include <scheduler.g.hh>

Inheritance diagram for lestes::backend_v2::workers::scheduler:

Inheritance graph
[legend]
List of all members.

Public Member Functions

bool dumb_scheduling_get () const
 The method dumb_scheduling_get returns the value of the field scheduler::dumb_scheduling.
void dumb_scheduling_set (bool)
 The method dumb_scheduling_set sets the field scheduler::dumb_scheduling to the given value.
ulint current_schedule_pos_get () const
 The method current_schedule_pos_get returns the value of the field scheduler::current_schedule_pos.
void current_schedule_pos_set (ulint)
 The method current_schedule_pos_set sets the field scheduler::current_schedule_pos to the given value.
ptr< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::ge_pi >,
srp< schedule_item > > > 
ge2si_get () const
 The method ge2si_get returns the value of the field scheduler::ge2si.
void ge2si_set (const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > &)
 The method ge2si_set sets the field scheduler::ge2si to the given value.
void process ()
 Schedules pseudoinstructions of a function body.
ptr< ::lestes::backend_v2::structs::func_dataget_result ()
 Returns data of the processed function with scheduled body.
ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > process_bb (ptr< ::lestes::backend_v2::workers::basic_block > bb)
ptr< set< srp< ::lestes::backend_v2::workers::schedule_item > > > find_schedule_items (ptr< ::lestes::backend_v2::workers::basic_block > bb)
void find_critical_paths (ptr< set< srp< ::lestes::backend_v2::workers::schedule_item > > > items)
ptr< vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > schedule_items (ptr< set< srp< schedule_item > > > items)
ptr< schedule_itemcreate_schedule_item (ptr< ::lestes::backend_v2::intercode::ge_pi > ge)
void check_waiting_set (ptr< set< srp< schedule_item > > > waiting)
bool find_dependence_loop (ptr< schedule_item > start, ptr< schedule_item > curr, ulint depth)
 Recursively searches for a dependence loops.
virtual ptr< reflection_listreflection_get () const
 for purposes of dumping
virtual ptr< field_list_listfield_values_get () const
 for purposes of dumping

Static Public Member Functions

static ptr< schedulercreate (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data, bool a__scheduler__dumb_scheduling, ulint a__scheduler__current_schedule_pos, ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > a__scheduler__ge2si)
 First generated factory method for class scheduler.
static ptr< schedulercreate (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data)
 Second generated factory method for class scheduler.

Protected Member Functions

 scheduler (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data, bool a__scheduler__dumb_scheduling, ulint a__scheduler__current_schedule_pos, ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > a__scheduler__ge2si)
 Generated constructor for class scheduler.
virtual void gc_mark ()
 Marking routine for class scheduler.

Private Attributes

bool dumb_scheduling
 A switch that turns on/off "dumb scheduling".
ulint current_schedule_pos
 A schedule position of a currently scheduled pseudoinstruction.
srp< ::lestes::std::map< srp<
::lestes::backend_v2::intercode::ge_pi >,
srp< schedule_item > > > 
ge2si
 A map between a pseudoinstruction and a corresponding schedule_item.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Performs list scheduling on a function's body based on critical path method.


Constructor & Destructor Documentation

lestes::backend_v2::workers::scheduler::scheduler ( ptr< ::lestes::backend_v2::structs::func_data a__worker_base__data,
bool  a__scheduler__dumb_scheduling,
ulint  a__scheduler__current_schedule_pos,
ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > >  a__scheduler__ge2si 
) [protected]

Generated constructor for class scheduler.

Generated constructor for class scheduler.

Author:
lsg


Member Function Documentation

bool lestes::backend_v2::workers::scheduler::dumb_scheduling_get (  )  const

The method dumb_scheduling_get returns the value of the field scheduler::dumb_scheduling.

Returns:
The value of scheduler::dumb_scheduling.
Author:
lsg

void lestes::backend_v2::workers::scheduler::dumb_scheduling_set ( bool  x  ) 

The method dumb_scheduling_set sets the field scheduler::dumb_scheduling to the given value.

Parameters:
[in] x The new value to set scheduler::dumb_scheduling to.
Author:
lsg

ulint lestes::backend_v2::workers::scheduler::current_schedule_pos_get (  )  const

The method current_schedule_pos_get returns the value of the field scheduler::current_schedule_pos.

Returns:
The value of scheduler::current_schedule_pos.
Author:
lsg

void lestes::backend_v2::workers::scheduler::current_schedule_pos_set ( ulint  x  ) 

The method current_schedule_pos_set sets the field scheduler::current_schedule_pos to the given value.

Parameters:
[in] x The new value to set scheduler::current_schedule_pos to.
Author:
lsg

ptr<::lestes::std::map< srp<::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > lestes::backend_v2::workers::scheduler::ge2si_get (  )  const

The method ge2si_get returns the value of the field scheduler::ge2si.

Returns:
The value of scheduler::ge2si.
Author:
lsg

void lestes::backend_v2::workers::scheduler::ge2si_set ( const ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > &  x  ) 

The method ge2si_set sets the field scheduler::ge2si to the given value.

Parameters:
[in] x The new value to set scheduler::ge2si to.
Author:
lsg

void lestes::backend_v2::workers::scheduler::process (  )  [virtual]

Schedules pseudoinstructions of a function body.

Implements lestes::backend_v2::workers::worker_base.

ptr< func_data > lestes::backend_v2::workers::scheduler::get_result (  )  [virtual]

Returns data of the processed function with scheduled body.

Implements lestes::backend_v2::workers::worker_base.

ptr<vector<srp< ::lestes::backend_v2::intercode::ge_pi> > > lestes::backend_v2::workers::scheduler::process_bb ( ptr< ::lestes::backend_v2::workers::basic_block bb  ) 

ptr<set<srp< ::lestes::backend_v2::workers::schedule_item> > > lestes::backend_v2::workers::scheduler::find_schedule_items ( ptr< ::lestes::backend_v2::workers::basic_block bb  ) 

void lestes::backend_v2::workers::scheduler::find_critical_paths ( ptr< set< srp< ::lestes::backend_v2::workers::schedule_item > > >  items  ) 

ptr<vector<srp< ::lestes::backend_v2::intercode::ge_pi> > > lestes::backend_v2::workers::scheduler::schedule_items ( ptr< set< srp< schedule_item > > >  items  ) 

ptr< schedule_item > lestes::backend_v2::workers::scheduler::create_schedule_item ( ptr< ::lestes::backend_v2::intercode::ge_pi ge  ) 

void lestes::backend_v2::workers::scheduler::check_waiting_set ( ptr< set< srp< schedule_item > > >  waiting  ) 

bool lestes::backend_v2::workers::scheduler::find_dependence_loop ( ptr< schedule_item start,
ptr< schedule_item curr,
ulint  depth 
)

Recursively searches for a dependence loops.

NOTE: For debugging purposes.

ptr< scheduler > lestes::backend_v2::workers::scheduler::create ( ptr< ::lestes::backend_v2::structs::func_data a__worker_base__data,
bool  a__scheduler__dumb_scheduling,
ulint  a__scheduler__current_schedule_pos,
ptr< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > >  a__scheduler__ge2si 
) [static]

First generated factory method for class scheduler.

This factory method for class scheduler takes values of all fields as arguments.

Author:
lsg

ptr< scheduler > lestes::backend_v2::workers::scheduler::create ( ptr< ::lestes::backend_v2::structs::func_data a__worker_base__data  )  [static]

Second generated factory method for class scheduler.

This factory method for class scheduler uses initializers.

Author:
lsg

ptr< object::reflection_list > lestes::backend_v2::workers::scheduler::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::backend_v2::workers::worker_base.

ptr< object::field_list_list > lestes::backend_v2::workers::scheduler::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::backend_v2::workers::worker_base.

void lestes::backend_v2::workers::scheduler::gc_mark ( void   )  [protected, virtual]

Marking routine for class scheduler.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::backend_v2::workers::worker_base.


Member Data Documentation

bool lestes::backend_v2::workers::scheduler::dumb_scheduling [private]

A switch that turns on/off "dumb scheduling".

Dumb scheduling = instruction execution time is ignored; it takes care only about instruction dependencies.

ulint lestes::backend_v2::workers::scheduler::current_schedule_pos [private]

A schedule position of a currently scheduled pseudoinstruction.

srp< ::lestes::std::map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< schedule_item > > > lestes::backend_v2::workers::scheduler::ge2si [private]

A map between a pseudoinstruction and a corresponding schedule_item.

ptr< object::reflection_list > lestes::backend_v2::workers::scheduler::reflection = reflection [static, private]

Reimplemented from lestes::backend_v2::workers::worker_base.


The documentation for this class was generated from the following files:
Generated on Mon Feb 12 18:43:17 2007 for lestes by doxygen 1.5.1-20070107