lestes::md::mem::local_variable_allocator Class Reference

Manager for local variable allocation. More...

#include <memory_allocators.g.hh>

Inheritance diagram for lestes::md::mem::local_variable_allocator:

lestes::md::mem::local_variable_allocator_base lestes::md::mem::allocator_base lestes::std::object lestes::std::mem::keystone List of all members.

Public Member Functions

bool placement_calculated_get () const
 The method placement_calculated_get returns the value of the field local_variable_allocator::placement_calculated.
void placement_calculated_set (bool)
 The method placement_calculated_set sets the field local_variable_allocator::placement_calculated to the given value.
t_ssize preserved_space_size_get () const
 The method preserved_space_size_get returns the value of the field local_variable_allocator::preserved_space_size.
void preserved_space_size_set (t_ssize)
 The method preserved_space_size_set sets the field local_variable_allocator::preserved_space_size to the given value.
t_ssize vars_space_start_offset_get () const
 The method vars_space_start_offset_get returns the value of the field local_variable_allocator::vars_space_start_offset.
void vars_space_start_offset_set (t_ssize)
 The method vars_space_start_offset_set sets the field local_variable_allocator::vars_space_start_offset to the given value.
t_ssize tmps_space_start_offset_get () const
 The method tmps_space_start_offset_get returns the value of the field local_variable_allocator::tmps_space_start_offset.
void tmps_space_start_offset_set (t_ssize)
 The method tmps_space_start_offset_set sets the field local_variable_allocator::tmps_space_start_offset to the given value.
t_ssize local_end_offset_get () const
 The method local_end_offset_get returns the value of the field local_variable_allocator::local_end_offset.
void local_end_offset_set (t_ssize)
 The method local_end_offset_set sets the field local_variable_allocator::local_end_offset to the given value.
ptr< ::lestes::std::list<
srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > 
tmps_get () const
 The method tmps_get returns the value of the field local_variable_allocator::tmps.
void tmps_set (const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > &)
 The method tmps_set sets the field local_variable_allocator::tmps to the given value.
ptr< ::lestes::std::map< srp<
::lestes::lang::cplus::sem::ss_object_declaration >,
srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > 
variables_get () const
 The method variables_get returns the value of the field local_variable_allocator::variables.
void variables_set (const ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_object_declaration >, srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > &)
 The method variables_set sets the field local_variable_allocator::variables to the given value.
virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factoryallocate_tmp (ptr< ::lestes::md::types::tm_data_type_base > type)
 Allocates space for variable on the local stack.
virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factoryallocate (ptr< ::lestes::lang::cplus::sem::ss_object_declaration > decl)
 Allocates space for variable on the local stack.
virtual void deallocate (ptr< ::lestes::backend_v2::intercode::pi_mem_factory > mem, ptr< ::lestes::backend_v2::intercode::pi_sp > psp, ptr< ::lestes::backend_v2::intercode::pi_sp > nsp)
 Deallocates space for variable on the local stack.
virtual void calculate_placement ()
 Calculates placement of local variables and parameters in memory.
void calculate_vars_placement ()
 Calculates placement of regular local variables in memory.
void calculate_tmps_placement ()
 Calculates placement of temporal local variables in memory.
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< ::lestes::std::map<
srp< ::lestes::lang::cplus::sem::ss_function_declaration >,
srp< local_variable_allocator > > > 
singleton_instances_get ()
 The method singleton_instances_get returns the value of the field local_variable_allocator::singleton_instances.
static void singleton_instances_set (const ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< local_variable_allocator > > > &)
 The method singleton_instances_set sets the field local_variable_allocator::singleton_instances to the given value.
static ptr< local_variable_allocatorinstance (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function)
 Return allocator instance for specific function.
static ptr< local_variable_allocatorcreate (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__local_variable_allocator_base__function, bool a__local_variable_allocator__placement_calculated, t_ssize a__local_variable_allocator__preserved_space_size, t_ssize a__local_variable_allocator__vars_space_start_offset, t_ssize a__local_variable_allocator__tmps_space_start_offset, t_ssize a__local_variable_allocator__local_end_offset, ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > a__local_variable_allocator__tmps, ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_object_declaration >, srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > a__local_variable_allocator__variables)
 First generated factory method for class local_variable_allocator.
static ptr< local_variable_allocatorcreate (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__local_variable_allocator_base__function)
 Second generated factory method for class local_variable_allocator.

Protected Member Functions

 local_variable_allocator (ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__local_variable_allocator_base__function, bool a__local_variable_allocator__placement_calculated, t_ssize a__local_variable_allocator__preserved_space_size, t_ssize a__local_variable_allocator__vars_space_start_offset, t_ssize a__local_variable_allocator__tmps_space_start_offset, t_ssize a__local_variable_allocator__local_end_offset, ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > a__local_variable_allocator__tmps, ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_object_declaration >, srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > a__local_variable_allocator__variables)
 Generated constructor for class local_variable_allocator.
virtual void gc_mark ()
 Marking routine for class local_variable_allocator.

Private Attributes

bool placement_calculated
 Tells whether placement has been already calculated.
t_ssize preserved_space_size
 Space on function's stack used for storing preserved register.
t_ssize vars_space_start_offset
 Stack offset where space for regular variables starts.
t_ssize tmps_space_start_offset
 Stack offset where space for temporal variables starts.
t_ssize local_end_offset
 Stack offset where the function's local space ends.
srp< ::lestes::std::list<
srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > 
tmps
 Temporal variables.
srp< ::lestes::std::map< srp<
::lestes::lang::cplus::sem::ss_object_declaration >,
srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > 
variables
 Regular variables.

Static Private Attributes

static ptr< ::lestes::std::map<
srp< ::lestes::lang::cplus::sem::ss_function_declaration >,
srp< local_variable_allocator > > > 
singleton_instances = ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< local_variable_allocator > > ::create()
static ptr< reflection_listreflection = reflection

Detailed Description

Manager for local variable allocation.

Definition at line 105 of file memory_allocators.g.hh.


Constructor & Destructor Documentation

lestes::md::mem::local_variable_allocator::local_variable_allocator ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__local_variable_allocator_base__function,
bool  a__local_variable_allocator__placement_calculated,
t_ssize  a__local_variable_allocator__preserved_space_size,
t_ssize  a__local_variable_allocator__vars_space_start_offset,
t_ssize  a__local_variable_allocator__tmps_space_start_offset,
t_ssize  a__local_variable_allocator__local_end_offset,
ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_mf_stack > > >  a__local_variable_allocator__tmps,
ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_object_declaration >, srp< ::lestes::backend_v2::intercode::pi_mf_stack > > >  a__local_variable_allocator__variables 
) [protected]

Generated constructor for class local_variable_allocator.

Generated constructor for class local_variable_allocator.

Author:
lsg

Definition at line 202 of file memory_allocators.g.cc.

Referenced by create().

00210         : local_variable_allocator_base(a__local_variable_allocator_base__function), placement_calculated(a__local_variable_allocator__placement_calculated), preserved_space_size(a__local_variable_allocator__preserved_space_size), vars_space_start_offset(a__local_variable_allocator__vars_space_start_offset), tmps_space_start_offset(a__local_variable_allocator__tmps_space_start_offset), local_end_offset(a__local_variable_allocator__local_end_offset), tmps(checked(a__local_variable_allocator__tmps)), variables(checked(a__local_variable_allocator__variables))
00211 {}


Member Function Documentation

bool lestes::md::mem::local_variable_allocator::placement_calculated_get (  )  const

The method placement_calculated_get returns the value of the field local_variable_allocator::placement_calculated.

Returns:
The value of local_variable_allocator::placement_calculated.
Author:
lsg

Definition at line 26 of file memory_allocators.g.cc.

References placement_calculated.

Referenced by calculate_placement().

00027 {
00028         return placement_calculated;
00029 }

void lestes::md::mem::local_variable_allocator::placement_calculated_set ( bool  x  ) 

The method placement_calculated_set sets the field local_variable_allocator::placement_calculated to the given value.

Parameters:
[in] x The new value to set local_variable_allocator::placement_calculated to.
Author:
lsg

Definition at line 35 of file memory_allocators.g.cc.

References placement_calculated.

Referenced by calculate_placement().

t_ssize lestes::md::mem::local_variable_allocator::preserved_space_size_get (  )  const

The method preserved_space_size_get returns the value of the field local_variable_allocator::preserved_space_size.

Returns:
The value of local_variable_allocator::preserved_space_size.
Author:
lsg

Definition at line 44 of file memory_allocators.g.cc.

References preserved_space_size.

Referenced by calculate_vars_placement().

00045 {
00046         return preserved_space_size;
00047 }

void lestes::md::mem::local_variable_allocator::preserved_space_size_set ( t_ssize  x  ) 

The method preserved_space_size_set sets the field local_variable_allocator::preserved_space_size to the given value.

Parameters:
[in] x The new value to set local_variable_allocator::preserved_space_size to.
Author:
lsg

Definition at line 53 of file memory_allocators.g.cc.

References preserved_space_size.

Referenced by calculate_placement().

t_ssize lestes::md::mem::local_variable_allocator::vars_space_start_offset_get (  )  const

The method vars_space_start_offset_get returns the value of the field local_variable_allocator::vars_space_start_offset.

Returns:
The value of local_variable_allocator::vars_space_start_offset.
Author:
lsg

Definition at line 62 of file memory_allocators.g.cc.

References vars_space_start_offset.

Referenced by calculate_vars_placement().

00063 {
00064         return vars_space_start_offset;
00065 }

void lestes::md::mem::local_variable_allocator::vars_space_start_offset_set ( t_ssize  x  ) 

The method vars_space_start_offset_set sets the field local_variable_allocator::vars_space_start_offset to the given value.

Parameters:
[in] x The new value to set local_variable_allocator::vars_space_start_offset to.
Author:
lsg

Definition at line 71 of file memory_allocators.g.cc.

References vars_space_start_offset.

Referenced by calculate_vars_placement().

t_ssize lestes::md::mem::local_variable_allocator::tmps_space_start_offset_get (  )  const

The method tmps_space_start_offset_get returns the value of the field local_variable_allocator::tmps_space_start_offset.

Returns:
The value of local_variable_allocator::tmps_space_start_offset.
Author:
lsg

Definition at line 80 of file memory_allocators.g.cc.

References tmps_space_start_offset.

Referenced by calculate_tmps_placement().

00081 {
00082         return tmps_space_start_offset;
00083 }

void lestes::md::mem::local_variable_allocator::tmps_space_start_offset_set ( t_ssize  x  ) 

The method tmps_space_start_offset_set sets the field local_variable_allocator::tmps_space_start_offset to the given value.

Parameters:
[in] x The new value to set local_variable_allocator::tmps_space_start_offset to.
Author:
lsg

Definition at line 89 of file memory_allocators.g.cc.

References tmps_space_start_offset.

Referenced by calculate_vars_placement().

t_ssize lestes::md::mem::local_variable_allocator::local_end_offset_get (  )  const

The method local_end_offset_get returns the value of the field local_variable_allocator::local_end_offset.

Returns:
The value of local_variable_allocator::local_end_offset.
Author:
lsg

Definition at line 98 of file memory_allocators.g.cc.

References local_end_offset.

00099 {
00100         return local_end_offset;
00101 }

void lestes::md::mem::local_variable_allocator::local_end_offset_set ( t_ssize  x  ) 

The method local_end_offset_set sets the field local_variable_allocator::local_end_offset to the given value.

Parameters:
[in] x The new value to set local_variable_allocator::local_end_offset to.
Author:
lsg

Definition at line 107 of file memory_allocators.g.cc.

References local_end_offset.

Referenced by calculate_tmps_placement().

00108 {
00109         local_variable_allocator::local_end_offset = x;
00110 }

ptr<::lestes::std::map< srp<::lestes::lang::cplus::sem::ss_function_declaration >, srp< local_variable_allocator > > > lestes::md::mem::local_variable_allocator::singleton_instances_get (  )  [static]

The method singleton_instances_get returns the value of the field local_variable_allocator::singleton_instances.

Returns:
The value of local_variable_allocator::singleton_instances.
Author:
lsg

Definition at line 116 of file memory_allocators.g.cc.

References singleton_instances.

00117 {
00118         return singleton_instances;
00119 }

void lestes::md::mem::local_variable_allocator::singleton_instances_set ( const ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< local_variable_allocator > > > &  x  )  [static]

The method singleton_instances_set sets the field local_variable_allocator::singleton_instances to the given value.

Parameters:
[in] x The new value to set local_variable_allocator::singleton_instances to.
Author:
lsg

Definition at line 125 of file memory_allocators.g.cc.

References singleton_instances.

ptr<::lestes::std::list< srp<::lestes::backend_v2::intercode::pi_mf_stack > > > lestes::md::mem::local_variable_allocator::tmps_get (  )  const

The method tmps_get returns the value of the field local_variable_allocator::tmps.

Returns:
The value of local_variable_allocator::tmps.
Author:
lsg

Definition at line 134 of file memory_allocators.g.cc.

References tmps.

00135 {
00136         return tmps;
00137 }

void lestes::md::mem::local_variable_allocator::tmps_set ( const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > &  x  ) 

The method tmps_set sets the field local_variable_allocator::tmps to the given value.

Parameters:
[in] x The new value to set local_variable_allocator::tmps to.
Author:
lsg

Definition at line 143 of file memory_allocators.g.cc.

References tmps.

00144 {
00145         local_variable_allocator::tmps = x;
00146 }

ptr<::lestes::std::map< srp<::lestes::lang::cplus::sem::ss_object_declaration >, srp<::lestes::backend_v2::intercode::pi_mf_stack > > > lestes::md::mem::local_variable_allocator::variables_get (  )  const

The method variables_get returns the value of the field local_variable_allocator::variables.

Returns:
The value of local_variable_allocator::variables.
Author:
lsg

Definition at line 152 of file memory_allocators.g.cc.

References variables.

00153 {
00154         return variables;
00155 }

void lestes::md::mem::local_variable_allocator::variables_set ( const ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_object_declaration >, srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > &  x  ) 

The method variables_set sets the field local_variable_allocator::variables to the given value.

Parameters:
[in] x The new value to set local_variable_allocator::variables to.
Author:
lsg

Definition at line 161 of file memory_allocators.g.cc.

References variables.

00162 {
00163         local_variable_allocator::variables = x;
00164 }

virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > lestes::md::mem::local_variable_allocator::allocate_tmp ( ptr< ::lestes::md::types::tm_data_type_base type  )  [virtual]

Allocates space for variable on the local stack.

Implements lestes::md::mem::local_variable_allocator_base.

virtual ptr< ::lestes::backend_v2::intercode::pi_mem_factory > lestes::md::mem::local_variable_allocator::allocate ( ptr< ::lestes::lang::cplus::sem::ss_object_declaration decl  )  [virtual]

Allocates space for variable on the local stack.

Implements lestes::md::mem::local_variable_allocator_base.

virtual void lestes::md::mem::local_variable_allocator::deallocate ( ptr< ::lestes::backend_v2::intercode::pi_mem_factory mem,
ptr< ::lestes::backend_v2::intercode::pi_sp psp,
ptr< ::lestes::backend_v2::intercode::pi_sp nsp 
) [virtual]

Deallocates space for variable on the local stack.

Implements lestes::md::mem::local_variable_allocator_base.

void lestes::md::mem::local_variable_allocator::calculate_placement (  )  [virtual]

Calculates placement of local variables and parameters in memory.

Implements lestes::md::mem::local_variable_allocator_base.

Definition at line 277 of file memory_allocators.cc.

References calculate_tmps_placement(), calculate_vars_placement(), lassert, placement_calculated_get(), placement_calculated_set(), and preserved_space_size_set().

00277                                                    {
00278         if ( placement_calculated_get() ) {
00279                 lassert(false);
00280                 return;
00281         }
00282 
00283         preserved_space_size_set(0);
00284         calculate_vars_placement();
00285         calculate_tmps_placement();
00286         placement_calculated_set(true);
00287 }

void lestes::md::mem::local_variable_allocator::calculate_vars_placement (  ) 

Calculates placement of regular local variables in memory.

Definition at line 293 of file memory_allocators.cc.

References preserved_space_size_get(), STACK_ALIGNMENT, tmps_space_start_offset_set(), variables, vars_space_start_offset_get(), and vars_space_start_offset_set().

Referenced by calculate_placement().

00293                                                         {       
00294         
00295         vars_space_start_offset_set(-preserved_space_size_get());
00296         
00297         t_ssize offset = vars_space_start_offset_get();
00298         
00299         decl2mf_stack_map_type::iterator it;    
00300         for(it=variables->begin(); it!=variables->end(); it++) {
00301                 ptr<pi_mf_stack> mem = it->second;
00302                 
00303                 ulint item_size = mem->type_get()->bitwidth_get();
00304                 
00305                 if ( item_size % STACK_ALIGNMENT != 0 ){
00306                         item_size = (item_size/STACK_ALIGNMENT + 1)*STACK_ALIGNMENT;
00307                 }
00308                                 
00309                 offset -= item_size;
00310                 
00311                 mem->offset_set(offset);
00312         }
00313         
00314         tmps_space_start_offset_set(offset);
00315 }

void lestes::md::mem::local_variable_allocator::calculate_tmps_placement (  ) 

Calculates placement of temporal local variables in memory.

Definition at line 320 of file memory_allocators.cc.

References local_end_offset_set(), STACK_ALIGNMENT, tmps, and tmps_space_start_offset_get().

Referenced by calculate_placement().

00320                                                         {       
00321         
00322         t_ssize offset = tmps_space_start_offset_get();
00323         
00324         pi_mf_stack_list_type::iterator it;     
00325         for(it=tmps->begin(); it!=tmps->end(); it++) {
00326                 ptr<pi_mf_stack> mem = *it;
00327                 
00328                 ulint item_size = mem->type_get()->bitwidth_get();
00329                 
00330                 if ( item_size % STACK_ALIGNMENT != 0 ){
00331                         item_size = (item_size/STACK_ALIGNMENT + 1)*STACK_ALIGNMENT;
00332                 }
00333                 offset -= item_size;
00334                 
00335                 mem->offset_set(offset);
00336         }
00337         
00338         local_end_offset_set(offset);
00339 }

static ptr< local_variable_allocator > lestes::md::mem::local_variable_allocator::instance ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration function  )  [static]

Return allocator instance for specific function.

ptr< local_variable_allocator > lestes::md::mem::local_variable_allocator::create ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__local_variable_allocator_base__function,
bool  a__local_variable_allocator__placement_calculated,
t_ssize  a__local_variable_allocator__preserved_space_size,
t_ssize  a__local_variable_allocator__vars_space_start_offset,
t_ssize  a__local_variable_allocator__tmps_space_start_offset,
t_ssize  a__local_variable_allocator__local_end_offset,
ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_mf_stack > > >  a__local_variable_allocator__tmps,
ptr< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_object_declaration >, srp< ::lestes::backend_v2::intercode::pi_mf_stack > > >  a__local_variable_allocator__variables 
) [static]

First generated factory method for class local_variable_allocator.

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

Author:
lsg

Definition at line 170 of file memory_allocators.g.cc.

References local_variable_allocator().

Referenced by create().

00178 {
00179         return ptr< local_variable_allocator > ( new local_variable_allocator(a__local_variable_allocator_base__function,
00180                 a__local_variable_allocator__placement_calculated,
00181                 a__local_variable_allocator__preserved_space_size,
00182                 a__local_variable_allocator__vars_space_start_offset,
00183                 a__local_variable_allocator__tmps_space_start_offset,
00184                 a__local_variable_allocator__local_end_offset,
00185                 a__local_variable_allocator__tmps,
00186                 a__local_variable_allocator__variables) );
00187 }

ptr< local_variable_allocator > lestes::md::mem::local_variable_allocator::create ( ptr< ::lestes::lang::cplus::sem::ss_function_declaration a__local_variable_allocator_base__function  )  [static]

Second generated factory method for class local_variable_allocator.

This factory method for class local_variable_allocator uses initializers.

Author:
lsg

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

References create(), and local_variable_allocator().

00194 {
00195         return ptr< local_variable_allocator > ( new local_variable_allocator(a__local_variable_allocator_base__function, false, 0, 0, 0, 0, ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_mf_stack > > ::create(), ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_object_declaration >, srp< ::lestes::backend_v2::intercode::pi_mf_stack > > ::create()) );
00196 }

ptr< object::reflection_list > lestes::md::mem::local_variable_allocator::reflection_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::md::mem::local_variable_allocator_base.

Definition at line 213 of file memory_allocators.g.cc.

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

00214 {
00215         if (!reflection) {
00216                 typedef class_reflection::field_metadata md;
00217                 typedef class_reflection::field_metadata_list mdlist;
00218                 ptr<mdlist> mdl = mdlist::create();
00219                 mdl->push_back( md::create( "placement_calculated", "bool" ) );
00220                 mdl->push_back( md::create( "preserved_space_size", "t_ssize" ) );
00221                 mdl->push_back( md::create( "vars_space_start_offset", "t_ssize" ) );
00222                 mdl->push_back( md::create( "tmps_space_start_offset", "t_ssize" ) );
00223                 mdl->push_back( md::create( "local_end_offset", "t_ssize" ) );
00224                 mdl->push_back( md::create( "singleton_instances", "map&lt; srp&lt; ::lestes::lang::cplus::sem::ss_function_declaration &gt;, srp&lt; local_variable_allocator &gt; &gt;" ) );
00225                 mdl->push_back( md::create( "tmps", "list&lt; srp&lt; ::lestes::backend_v2::intercode::pi_mf_stack &gt; &gt;" ) );
00226                 mdl->push_back( md::create( "variables", "map&lt; srp&lt; ::lestes::lang::cplus::sem::ss_object_declaration &gt;, srp&lt; ::lestes::backend_v2::intercode::pi_mf_stack &gt; &gt;" ) );
00227                 reflection = reflection_list::create( local_variable_allocator_base::reflection_get() );
00228                 reflection->push_back( class_reflection::create( "local_variable_allocator", mdl ) );
00229         }
00230         return reflection;
00231 }

ptr< object::field_list_list > lestes::md::mem::local_variable_allocator::field_values_get (  )  const [virtual]

for purposes of dumping

Reimplemented from lestes::md::mem::local_variable_allocator_base.

Definition at line 233 of file memory_allocators.g.cc.

References lestes::std::list< T >::create(), and lestes::md::mem::local_variable_allocator_base::field_values_get().

00234 {
00235         ptr < field_list_list > result = local_variable_allocator_base::field_values_get();
00236         result->push_back( value_list::create() );
00237         result->back()->push_back( objectize< bool > ::create( this->placement_calculated ) );
00238         result->push_back( value_list::create() );
00239         result->back()->push_back( objectize< t_ssize > ::create( this->preserved_space_size ) );
00240         result->push_back( value_list::create() );
00241         result->back()->push_back( objectize< t_ssize > ::create( this->vars_space_start_offset ) );
00242         result->push_back( value_list::create() );
00243         result->back()->push_back( objectize< t_ssize > ::create( this->tmps_space_start_offset ) );
00244         result->push_back( value_list::create() );
00245         result->back()->push_back( objectize< t_ssize > ::create( this->local_end_offset ) );
00246         result->push_back( value_list::create() );
00247         result->back()->push_back( this->singleton_instances );
00248         result->push_back( value_list::create() );
00249         result->back()->push_back( this->tmps );
00250         result->push_back( value_list::create() );
00251         result->back()->push_back( this->variables );
00252         return result;
00253 }

void lestes::md::mem::local_variable_allocator::gc_mark ( void   )  [protected, virtual]

Marking routine for class local_variable_allocator.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::md::mem::local_variable_allocator_base.

Definition at line 260 of file memory_allocators.g.cc.

References lestes::md::mem::local_variable_allocator_base::gc_mark().

00261 {
00262         local_variable_allocator_base::gc_mark();
00263 }


Member Data Documentation

bool lestes::md::mem::local_variable_allocator::placement_calculated [private]

Tells whether placement has been already calculated.

Definition at line 216 of file memory_allocators.g.hh.

Referenced by placement_calculated_get(), and placement_calculated_set().

t_ssize lestes::md::mem::local_variable_allocator::preserved_space_size [private]

Space on function's stack used for storing preserved register.

Definition at line 218 of file memory_allocators.g.hh.

Referenced by preserved_space_size_get(), and preserved_space_size_set().

t_ssize lestes::md::mem::local_variable_allocator::vars_space_start_offset [private]

Stack offset where space for regular variables starts.

Definition at line 220 of file memory_allocators.g.hh.

Referenced by vars_space_start_offset_get(), and vars_space_start_offset_set().

t_ssize lestes::md::mem::local_variable_allocator::tmps_space_start_offset [private]

Stack offset where space for temporal variables starts.

Definition at line 222 of file memory_allocators.g.hh.

Referenced by tmps_space_start_offset_get(), and tmps_space_start_offset_set().

t_ssize lestes::md::mem::local_variable_allocator::local_end_offset [private]

Stack offset where the function's local space ends.

Definition at line 224 of file memory_allocators.g.hh.

Referenced by local_end_offset_get(), and local_end_offset_set().

ptr<::lestes::std::map< srp<::lestes::lang::cplus::sem::ss_function_declaration >, srp< local_variable_allocator > > > lestes::md::mem::local_variable_allocator::singleton_instances = ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_function_declaration >, srp< local_variable_allocator > > ::create() [static, private]

Definition at line 225 of file memory_allocators.g.hh.

Referenced by singleton_instances_get(), and singleton_instances_set().

srp< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > lestes::md::mem::local_variable_allocator::tmps [private]

Temporal variables.

Definition at line 227 of file memory_allocators.g.hh.

Referenced by calculate_tmps_placement(), tmps_get(), and tmps_set().

srp< ::lestes::std::map< srp< ::lestes::lang::cplus::sem::ss_object_declaration >, srp< ::lestes::backend_v2::intercode::pi_mf_stack > > > lestes::md::mem::local_variable_allocator::variables [private]

Regular variables.

Definition at line 229 of file memory_allocators.g.hh.

Referenced by calculate_vars_placement(), variables_get(), and variables_set().

ptr< object::reflection_list > lestes::md::mem::local_variable_allocator::reflection = reflection [static, private]

Reimplemented from lestes::md::mem::local_variable_allocator_base.

Definition at line 230 of file memory_allocators.g.hh.

Referenced by reflection_get().


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