lestes::backend_v2::structs::func_data Class Reference

A represenation of a function's body. More...

#include <func_data.g.hh>

Inheritance diagram for lestes::backend_v2::structs::func_data:

lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

ptr< ::lestes::lang::cplus::sem::ss_function_declarationfunction_decl_get () const
 The method function_decl_get returns the value of the field func_data::function_decl.
void function_decl_set (const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > &)
 The method function_decl_set sets the field func_data::function_decl to the given value.
ptr< ::lestes::std::list<
srp< ::lestes::backend_v2::intercode::pi_pi > > > 
pi_body_get () const
 The method pi_body_get returns the value of the field func_data::pi_body.
void pi_body_set (const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > &)
 The method pi_body_set sets the field func_data::pi_body to the given value.
ptr< ::lestes::std::list<
srp< ::lestes::backend_v2::intercode::ge_pi > > > 
ge_body_get () const
 The method ge_body_get returns the value of the field func_data::ge_body.
void ge_body_set (const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > &)
 The method ge_body_set sets the field func_data::ge_body to the given value.
ptr< ::lestes::std::vector<
srp< ::lestes::backend_v2::workers::basic_block > > > 
bbs_get () const
 The method bbs_get returns the value of the field func_data::bbs.
void bbs_set (const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > &)
 The method bbs_set sets the field func_data::bbs to the given value.
ptr< ::lestes::std::vector<
srp< ::lestes::backend_v2::workers::alloc_interval > > > 
alloc_ints_get () const
 The method alloc_ints_get returns the value of the field func_data::alloc_ints.
void alloc_ints_set (const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > &)
 The method alloc_ints_set sets the field func_data::alloc_ints to the given value.
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< func_datacreate (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__func_data__function_decl, ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > a__func_data__pi_body, ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__func_data__ge_body, ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > a__func_data__bbs, ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > a__func_data__alloc_ints)
 First generated factory method for class func_data.
static ptr< func_datacreate (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__func_data__function_decl)
 Second generated factory method for class func_data.

Protected Member Functions

 func_data (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__func_data__function_decl, ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > a__func_data__pi_body, ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__func_data__ge_body, ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > a__func_data__bbs, ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > a__func_data__alloc_ints)
 Generated constructor for class func_data.
virtual void gc_mark ()
 Marking routine for class func_data.

Private Attributes

srp< ::lestes::lang::cplus::sem::ss_function_declarationfunction_decl
 Ss-declaration of the function.
srp< ::lestes::std::list<
srp< ::lestes::backend_v2::intercode::pi_pi > > > 
pi_body
 A list of pi-level pseudoinstructions of the function's body.
srp< ::lestes::std::list<
srp< ::lestes::backend_v2::intercode::ge_pi > > > 
ge_body
 A list of ge-level pseudoinstruction of the function's body.
srp< ::lestes::std::vector<
srp< ::lestes::backend_v2::workers::basic_block > > > 
bbs
 A list of basic blocks.
srp< ::lestes::std::vector<
srp< ::lestes::backend_v2::workers::alloc_interval > > > 
alloc_ints
 A list of intervals used by register allocation a spill-code generation.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

A represenation of a function's body.

This structure is pased through the backend's pipeline, each worker processes it and updates it with its results.

Definition at line 84 of file func_data.g.hh.


Constructor & Destructor Documentation

lestes::backend_v2::structs::func_data::func_data ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__func_data__function_decl,
ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > >  a__func_data__pi_body,
ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > >  a__func_data__ge_body,
ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > >  a__func_data__bbs,
ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > >  a__func_data__alloc_ints 
) [protected]

Generated constructor for class func_data.

Generated constructor for class func_data.

Author:
lsg

Definition at line 147 of file func_data.g.cc.

Referenced by create().

00152         : ::lestes::std::object(), function_decl(checked(a__func_data__function_decl)), pi_body(checked(a__func_data__pi_body)), ge_body(checked(a__func_data__ge_body)), bbs(checked(a__func_data__bbs)), alloc_ints(checked(a__func_data__alloc_ints))
00153 {}


Member Function Documentation

ptr<::lestes::lang::cplus::sem::ss_function_declaration > lestes::backend_v2::structs::func_data::function_decl_get (  )  const

The method function_decl_get returns the value of the field func_data::function_decl.

Returns:
The value of func_data::function_decl.
Author:
lsg

Definition at line 31 of file func_data.g.cc.

References function_decl.

00032 {
00033         return function_decl;
00034 }

void lestes::backend_v2::structs::func_data::function_decl_set ( const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > &  x  ) 

The method function_decl_set sets the field func_data::function_decl to the given value.

Parameters:
[in] x The new value to set func_data::function_decl to.
Author:
lsg

Definition at line 40 of file func_data.g.cc.

References function_decl.

00041 {
00042         func_data::function_decl = x;
00043 }

ptr<::lestes::std::list< srp<::lestes::backend_v2::intercode::pi_pi > > > lestes::backend_v2::structs::func_data::pi_body_get (  )  const

The method pi_body_get returns the value of the field func_data::pi_body.

Returns:
The value of func_data::pi_body.
Author:
lsg

Definition at line 49 of file func_data.g.cc.

References pi_body.

00050 {
00051         return pi_body;
00052 }

void lestes::backend_v2::structs::func_data::pi_body_set ( const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > &  x  ) 

The method pi_body_set sets the field func_data::pi_body to the given value.

Parameters:
[in] x The new value to set func_data::pi_body to.
Author:
lsg

Definition at line 58 of file func_data.g.cc.

References pi_body.

00059 {
00060         func_data::pi_body = x;
00061 }

ptr<::lestes::std::list< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::backend_v2::structs::func_data::ge_body_get (  )  const

The method ge_body_get returns the value of the field func_data::ge_body.

Returns:
The value of func_data::ge_body.
Author:
lsg

Definition at line 67 of file func_data.g.cc.

References ge_body.

00068 {
00069         return ge_body;
00070 }

void lestes::backend_v2::structs::func_data::ge_body_set ( const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > &  x  ) 

The method ge_body_set sets the field func_data::ge_body to the given value.

Parameters:
[in] x The new value to set func_data::ge_body to.
Author:
lsg

Definition at line 76 of file func_data.g.cc.

References ge_body.

00077 {
00078         func_data::ge_body = x;
00079 }

ptr<::lestes::std::vector< srp<::lestes::backend_v2::workers::basic_block > > > lestes::backend_v2::structs::func_data::bbs_get (  )  const

The method bbs_get returns the value of the field func_data::bbs.

Returns:
The value of func_data::bbs.
Author:
lsg

Definition at line 85 of file func_data.g.cc.

References bbs.

00086 {
00087         return bbs;
00088 }

void lestes::backend_v2::structs::func_data::bbs_set ( const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > &  x  ) 

The method bbs_set sets the field func_data::bbs to the given value.

Parameters:
[in] x The new value to set func_data::bbs to.
Author:
lsg

Definition at line 94 of file func_data.g.cc.

References bbs.

00095 {
00096         func_data::bbs = x;
00097 }

ptr<::lestes::std::vector< srp<::lestes::backend_v2::workers::alloc_interval > > > lestes::backend_v2::structs::func_data::alloc_ints_get (  )  const

The method alloc_ints_get returns the value of the field func_data::alloc_ints.

Returns:
The value of func_data::alloc_ints.
Author:
lsg

Definition at line 103 of file func_data.g.cc.

References alloc_ints.

00104 {
00105         return alloc_ints;
00106 }

void lestes::backend_v2::structs::func_data::alloc_ints_set ( const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > &  x  ) 

The method alloc_ints_set sets the field func_data::alloc_ints to the given value.

Parameters:
[in] x The new value to set func_data::alloc_ints to.
Author:
lsg

Definition at line 112 of file func_data.g.cc.

References alloc_ints.

00113 {
00114         func_data::alloc_ints = x;
00115 }

ptr< func_data > lestes::backend_v2::structs::func_data::create ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__func_data__function_decl,
ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > >  a__func_data__pi_body,
ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > >  a__func_data__ge_body,
ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > >  a__func_data__bbs,
ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > >  a__func_data__alloc_ints 
) [static]

First generated factory method for class func_data.

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

Author:
lsg

Definition at line 121 of file func_data.g.cc.

References func_data().

Referenced by create().

00126 {
00127         return ptr< func_data > ( new func_data(a__func_data__function_decl,
00128                 a__func_data__pi_body,
00129                 a__func_data__ge_body,
00130                 a__func_data__bbs,
00131                 a__func_data__alloc_ints) );
00132 }

ptr< func_data > lestes::backend_v2::structs::func_data::create ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__func_data__function_decl  )  [static]

Second generated factory method for class func_data.

This factory method for class func_data uses initializers.

Author:
lsg

Definition at line 138 of file func_data.g.cc.

References create(), and func_data().

00139 {
00140         return ptr< func_data > ( new func_data(a__func_data__function_decl, ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > ::create(), ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > ::create(), ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > ::create(), ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > ::create()) );
00141 }

ptr< object::reflection_list > lestes::backend_v2::structs::func_data::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Definition at line 155 of file func_data.g.cc.

References lestes::std::list< T >::create(), reflection, and lestes::std::object::reflection_get().

00156 {
00157         if (!reflection) {
00158                 typedef class_reflection::field_metadata md;
00159                 typedef class_reflection::field_metadata_list mdlist;
00160                 ptr<mdlist> mdl = mdlist::create();
00161                 mdl->push_back( md::create( "function_decl", "ss_function_declaration" ) );
00162                 mdl->push_back( md::create( "pi_body", "list&lt; srp&lt; ::lestes::backend_v2::intercode::pi_pi &gt; &gt;" ) );
00163                 mdl->push_back( md::create( "ge_body", "list&lt; srp&lt; ::lestes::backend_v2::intercode::ge_pi &gt; &gt;" ) );
00164                 mdl->push_back( md::create( "bbs", "vector&lt; srp&lt; ::lestes::backend_v2::workers::basic_block &gt; &gt;" ) );
00165                 mdl->push_back( md::create( "alloc_ints", "vector&lt; srp&lt; ::lestes::backend_v2::workers::alloc_interval &gt; &gt;" ) );
00166                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00167                 reflection->push_back( class_reflection::create( "func_data", mdl ) );
00168         }
00169         return reflection;
00170 }

ptr< object::field_list_list > lestes::backend_v2::structs::func_data::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::std::object.

Definition at line 172 of file func_data.g.cc.

References lestes::std::list< T >::create(), and lestes::std::object::field_values_get().

00173 {
00174         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00175         result->push_back( value_list::create() );
00176         result->back()->push_back( this->function_decl );
00177         result->push_back( value_list::create() );
00178         result->back()->push_back( this->pi_body );
00179         result->push_back( value_list::create() );
00180         result->back()->push_back( this->ge_body );
00181         result->push_back( value_list::create() );
00182         result->back()->push_back( this->bbs );
00183         result->push_back( value_list::create() );
00184         result->back()->push_back( this->alloc_ints );
00185         return result;
00186 }

void lestes::backend_v2::structs::func_data::gc_mark ( void   )  [protected, virtual]

Marking routine for class func_data.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::std::mem::keystone.

Definition at line 193 of file func_data.g.cc.

References lestes::std::mem::keystone::gc_mark().

00194 {
00195 	::lestes::std::object::gc_mark();
00196 }


Member Data Documentation

srp< ::lestes::lang::cplus::sem::ss_function_declaration > lestes::backend_v2::structs::func_data::function_decl [private]

Ss-declaration of the function.

Definition at line 150 of file func_data.g.hh.

Referenced by function_decl_get(), and function_decl_set().

srp< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > lestes::backend_v2::structs::func_data::pi_body [private]

A list of pi-level pseudoinstructions of the function's body.

Definition at line 152 of file func_data.g.hh.

Referenced by pi_body_get(), and pi_body_set().

srp< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > lestes::backend_v2::structs::func_data::ge_body [private]

A list of ge-level pseudoinstruction of the function's body.

Definition at line 154 of file func_data.g.hh.

Referenced by ge_body_get(), and ge_body_set().

srp< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > lestes::backend_v2::structs::func_data::bbs [private]

A list of basic blocks.

Definition at line 156 of file func_data.g.hh.

Referenced by bbs_get(), and bbs_set().

srp< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > lestes::backend_v2::structs::func_data::alloc_ints [private]

A list of intervals used by register allocation a spill-code generation.

Definition at line 158 of file func_data.g.hh.

Referenced by alloc_ints_get(), and alloc_ints_set().

ptr< object::reflection_list > lestes::backend_v2::structs::func_data::reflection = reflection [static, private]

Reimplemented from lestes::std::object.

Definition at line 159 of file func_data.g.hh.

Referenced by reflection_get().


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