lestes::backend_v2::backend Class Reference

Main backend class. More...

#include <backend.g.hh>

Inheritance diagram for lestes::backend_v2::backend:

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

Public Member Functions

::std::ostream & output_get () const
 The method output_get returns the value of the field backend::output.
bool optimization_conditional_jumps_get () const
 The method optimization_conditional_jumps_get returns the value of the field backend::optimization_conditional_jumps.
void optimization_conditional_jumps_set (bool)
 The method optimization_conditional_jumps_set sets the field backend::optimization_conditional_jumps to the given value.
bool optimization_immediate_inlining_get () const
 The method optimization_immediate_inlining_get returns the value of the field backend::optimization_immediate_inlining.
void optimization_immediate_inlining_set (bool)
 The method optimization_immediate_inlining_set sets the field backend::optimization_immediate_inlining to the given value.
bool optimization_memory_inlining_get () const
 The method optimization_memory_inlining_get returns the value of the field backend::optimization_memory_inlining.
void optimization_memory_inlining_set (bool)
 The method optimization_memory_inlining_set sets the field backend::optimization_memory_inlining to the given value.
bool optimization_deadcode_elimination_get () const
 The method optimization_deadcode_elimination_get returns the value of the field backend::optimization_deadcode_elimination.
void optimization_deadcode_elimination_set (bool)
 The method optimization_deadcode_elimination_set sets the field backend::optimization_deadcode_elimination to the given value.
bool optimization_register_allocation_get () const
 The method optimization_register_allocation_get returns the value of the field backend::optimization_register_allocation.
void optimization_register_allocation_set (bool)
 The method optimization_register_allocation_set sets the field backend::optimization_register_allocation to the given value.
bool optimization_uselesscode_elimination_get () const
 The method optimization_uselesscode_elimination_get returns the value of the field backend::optimization_uselesscode_elimination.
void optimization_uselesscode_elimination_set (bool)
 The method optimization_uselesscode_elimination_set sets the field backend::optimization_uselesscode_elimination to the given value.
bool optimization_code_scheduling_get () const
 The method optimization_code_scheduling_get returns the value of the field backend::optimization_code_scheduling.
void optimization_code_scheduling_set (bool)
 The method optimization_code_scheduling_set sets the field backend::optimization_code_scheduling to the given value.
void main ()
 The backend's main.
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< backendcreate (::std::ostream &a__backend__output, bool a__backend__optimization_conditional_jumps, bool a__backend__optimization_immediate_inlining, bool a__backend__optimization_memory_inlining, bool a__backend__optimization_deadcode_elimination, bool a__backend__optimization_register_allocation, bool a__backend__optimization_uselesscode_elimination, bool a__backend__optimization_code_scheduling)
 First generated factory method for class backend.
static ptr< backendcreate (::std::ostream &a__backend__output)
 Second generated factory method for class backend.

Protected Member Functions

 backend (::std::ostream &a__backend__output, bool a__backend__optimization_conditional_jumps, bool a__backend__optimization_immediate_inlining, bool a__backend__optimization_memory_inlining, bool a__backend__optimization_deadcode_elimination, bool a__backend__optimization_register_allocation, bool a__backend__optimization_uselesscode_elimination, bool a__backend__optimization_code_scheduling)
 Generated constructor for class backend.
virtual void gc_mark ()
 Marking routine for class backend.

Private Attributes

::std::ostream & output
 A stream where an output asm code is flushed into.
bool optimization_conditional_jumps
 Switch that turns on/off conditional jumps optimization ( pi_cond_jmp_rewritter worker ).
bool optimization_immediate_inlining
 Switch that turns on/off elimination of immediate loading by special load instruction rather than inlining of immediate into instructions that use it. ( literal_inliner worker ).
bool optimization_memory_inlining
 Switch that turns on/off elimination of memory operand loading by special load instruction rather than inlining of memory operand into instructions that use it. ( memory_inliner worker ).
bool optimization_deadcode_elimination
 Switch that turns on/off dead coe elimination ( dead_code_eliminator worker ).
bool optimization_register_allocation
 Switch that turns on/off register allocation ( linscan_regalloc worker ).
bool optimization_uselesscode_elimination
 Switch that turns on/off uselesscode elimination ( useless_code_eliminator worker ).
bool optimization_code_scheduling
 Switch that turns on/off code scheduling ( scheduler worker ).

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Main backend class.

The compiler's backend. It takes intercode structures representing single translation unit that are passed to backend in backend_data_builder object. It splits these structures to blocks that coresponds to function bodies and passes them one by one to block_processor for further processing. At the end it manages asm code generation.

Definition at line 35 of file backend.g.hh.


Constructor & Destructor Documentation

lestes::backend_v2::backend::backend ( ::std::ostream &  a__backend__output,
bool  a__backend__optimization_conditional_jumps,
bool  a__backend__optimization_immediate_inlining,
bool  a__backend__optimization_memory_inlining,
bool  a__backend__optimization_deadcode_elimination,
bool  a__backend__optimization_register_allocation,
bool  a__backend__optimization_uselesscode_elimination,
bool  a__backend__optimization_code_scheduling 
) [protected]

Generated constructor for class backend.

Generated constructor for class backend.

Author:
lsg

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

Referenced by create().

00210         : ::lestes::std::object(), output(a__backend__output), optimization_conditional_jumps(a__backend__optimization_conditional_jumps), optimization_immediate_inlining(a__backend__optimization_immediate_inlining), optimization_memory_inlining(a__backend__optimization_memory_inlining), optimization_deadcode_elimination(a__backend__optimization_deadcode_elimination), optimization_register_allocation(a__backend__optimization_register_allocation), optimization_uselesscode_elimination(a__backend__optimization_uselesscode_elimination), optimization_code_scheduling(a__backend__optimization_code_scheduling)
00211 {}


Member Function Documentation

std::ostream & lestes::backend_v2::backend::output_get (  )  const

The method output_get returns the value of the field backend::output.

Returns:
The value of backend::output.
Author:
lsg

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

References output.

00036 {
00037         return output;
00038 }

bool lestes::backend_v2::backend::optimization_conditional_jumps_get (  )  const

The method optimization_conditional_jumps_get returns the value of the field backend::optimization_conditional_jumps.

Returns:
The value of backend::optimization_conditional_jumps.
Author:
lsg

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

References optimization_conditional_jumps.

00045 {
00046         return optimization_conditional_jumps;
00047 }

void lestes::backend_v2::backend::optimization_conditional_jumps_set ( bool  x  ) 

The method optimization_conditional_jumps_set sets the field backend::optimization_conditional_jumps to the given value.

Parameters:
[in] x The new value to set backend::optimization_conditional_jumps to.
Author:
lsg

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

References optimization_conditional_jumps.

00054 {
00055         backend::optimization_conditional_jumps = x;
00056 }

bool lestes::backend_v2::backend::optimization_immediate_inlining_get (  )  const

The method optimization_immediate_inlining_get returns the value of the field backend::optimization_immediate_inlining.

Returns:
The value of backend::optimization_immediate_inlining.
Author:
lsg

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

References optimization_immediate_inlining.

00063 {
00064         return optimization_immediate_inlining;
00065 }

void lestes::backend_v2::backend::optimization_immediate_inlining_set ( bool  x  ) 

The method optimization_immediate_inlining_set sets the field backend::optimization_immediate_inlining to the given value.

Parameters:
[in] x The new value to set backend::optimization_immediate_inlining to.
Author:
lsg

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

References optimization_immediate_inlining.

00072 {
00073         backend::optimization_immediate_inlining = x;
00074 }

bool lestes::backend_v2::backend::optimization_memory_inlining_get (  )  const

The method optimization_memory_inlining_get returns the value of the field backend::optimization_memory_inlining.

Returns:
The value of backend::optimization_memory_inlining.
Author:
lsg

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

References optimization_memory_inlining.

00081 {
00082         return optimization_memory_inlining;
00083 }

void lestes::backend_v2::backend::optimization_memory_inlining_set ( bool  x  ) 

The method optimization_memory_inlining_set sets the field backend::optimization_memory_inlining to the given value.

Parameters:
[in] x The new value to set backend::optimization_memory_inlining to.
Author:
lsg

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

References optimization_memory_inlining.

00090 {
00091         backend::optimization_memory_inlining = x;
00092 }

bool lestes::backend_v2::backend::optimization_deadcode_elimination_get (  )  const

The method optimization_deadcode_elimination_get returns the value of the field backend::optimization_deadcode_elimination.

Returns:
The value of backend::optimization_deadcode_elimination.
Author:
lsg

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

References optimization_deadcode_elimination.

00099 {
00100         return optimization_deadcode_elimination;
00101 }

void lestes::backend_v2::backend::optimization_deadcode_elimination_set ( bool  x  ) 

The method optimization_deadcode_elimination_set sets the field backend::optimization_deadcode_elimination to the given value.

Parameters:
[in] x The new value to set backend::optimization_deadcode_elimination to.
Author:
lsg

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

References optimization_deadcode_elimination.

00108 {
00109         backend::optimization_deadcode_elimination = x;
00110 }

bool lestes::backend_v2::backend::optimization_register_allocation_get (  )  const

The method optimization_register_allocation_get returns the value of the field backend::optimization_register_allocation.

Returns:
The value of backend::optimization_register_allocation.
Author:
lsg

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

References optimization_register_allocation.

00117 {
00118         return optimization_register_allocation;
00119 }

void lestes::backend_v2::backend::optimization_register_allocation_set ( bool  x  ) 

The method optimization_register_allocation_set sets the field backend::optimization_register_allocation to the given value.

Parameters:
[in] x The new value to set backend::optimization_register_allocation to.
Author:
lsg

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

References optimization_register_allocation.

00126 {
00127         backend::optimization_register_allocation = x;
00128 }

bool lestes::backend_v2::backend::optimization_uselesscode_elimination_get (  )  const

The method optimization_uselesscode_elimination_get returns the value of the field backend::optimization_uselesscode_elimination.

Returns:
The value of backend::optimization_uselesscode_elimination.
Author:
lsg

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

References optimization_uselesscode_elimination.

00135 {
00136         return optimization_uselesscode_elimination;
00137 }

void lestes::backend_v2::backend::optimization_uselesscode_elimination_set ( bool  x  ) 

The method optimization_uselesscode_elimination_set sets the field backend::optimization_uselesscode_elimination to the given value.

Parameters:
[in] x The new value to set backend::optimization_uselesscode_elimination to.
Author:
lsg

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

References optimization_uselesscode_elimination.

bool lestes::backend_v2::backend::optimization_code_scheduling_get (  )  const

The method optimization_code_scheduling_get returns the value of the field backend::optimization_code_scheduling.

Returns:
The value of backend::optimization_code_scheduling.
Author:
lsg

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

References optimization_code_scheduling.

00153 {
00154         return optimization_code_scheduling;
00155 }

void lestes::backend_v2::backend::optimization_code_scheduling_set ( bool  x  ) 

The method optimization_code_scheduling_set sets the field backend::optimization_code_scheduling to the given value.

Parameters:
[in] x The new value to set backend::optimization_code_scheduling to.
Author:
lsg

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

References optimization_code_scheduling.

00162 {
00163         backend::optimization_code_scheduling = x;
00164 }

void lestes::backend_v2::backend::main (  ) 

The backend's main.

Definition at line 43 of file backend.cc.

References lestes::backend_v2::debug::b_dump(), create(), lestes::msg::eolog, optimization_code_scheduling, optimization_conditional_jumps, optimization_deadcode_elimination, optimization_immediate_inlining, optimization_memory_inlining, optimization_register_allocation, optimization_uselesscode_elimination, and output.

00043                    {
00044 
00045         backend_v2_logger << "main - start\n" << eolog;
00046         
00047         ptr<vector<srp<builder_func_data> > > builder_data = backend_data_builder::instance()->get_result();
00048         ptr<vector<srp<func_data> > > tu_data = vector<srp<func_data> >::create();
00049         
00050         for(ulint i=0; i<builder_data->size(); ++i) {
00051                 
00052                 backend_v2_logger << "function body processing - start\n" << eolog;
00053                 
00054                 ptr<builder_func_data> bfd = (*builder_data)[i]; 
00055                 
00056                 b_dump(bfd,"function_data");
00057                 
00058                 ptr<func_data> fd = func_data::create(bfd->function_decl_get());
00059                 fd->pi_body_set(bfd->pi_body_get()); 
00060 
00061                 backend_v2_logger << "registering function in symbol register\n" << eolog;
00062                 symbol_register::instance()->register_symbol(fd->function_decl_get());
00063                 
00064                 if ( optimization_conditional_jumps ) {
00065                         backend_v2_logger << "optimizing conditional jumps\n" << eolog;
00066                         ptr<pi_cond_jmp_rewriter> jmps = pi_cond_jmp_rewriter::create(fd);
00067                         jmps->process();
00068                         fd = jmps->get_result();
00069                 }
00070                 
00071                 backend_v2_logger << "ordering pi-pseudoinstructions\n" << eolog;
00072                 ptr<order_governor> linearizator = order_governor::create(fd);
00073                 linearizator->process();
00074                 fd = linearizator->get_result();
00075                 
00076                 backend_v2_logger << "generating ge-code\n" << eolog;
00077                 ptr<ge_generator> ge_gen = ge_generator::create(fd);
00078                 ge_gen->process();
00079                 fd = ge_gen->get_result();
00080                 
00081                 if ( optimization_immediate_inlining ) {
00082                         backend_v2_logger << "inlining immediates\n" << eolog;
00083                         ptr<literal_inliner> lit_inliner = literal_inliner::create(fd);
00084                         lit_inliner->process();
00085                         fd = lit_inliner->get_result();
00086                 }
00087                 
00088                 
00089                 if ( optimization_memory_inlining ) {
00090                         backend_v2_logger << "inlining memory operands\n" << eolog;
00091                         ptr<memory_inliner> mem_inliner = memory_inliner::create(fd);
00092                         mem_inliner->process();
00093                         fd = mem_inliner->get_result();
00094                 }
00095                 
00096                 if ( optimization_deadcode_elimination ) {
00097                         backend_v2_logger << "dead code elimination\n" << eolog;
00098                         ptr<dead_code_eliminator> dead = dead_code_eliminator::create(fd);
00099                         dead->process();
00100                         fd = dead->get_result();
00101                 }
00102                 
00103                 backend_v2_logger << "preprocessing body\n" << eolog;
00104                 ptr<body_preprocessor> bp = body_preprocessor::create(fd);
00105                 bp->process();
00106                 fd = bp->get_result();
00107                 
00108                 backend_v2_logger << "analyzing basic blocks\n" << eolog;
00109                 ptr<bb_finder> bb = bb_finder::create(fd);
00110                 bb->process();
00111                 fd = bb->get_result();
00112                 
00113                 backend_v2_logger << "scheduling ge-code - pass 1\n" << eolog;
00114                 ptr<scheduler> sched = scheduler::create(fd);
00115                 if ( !optimization_code_scheduling ) {
00116                         sched->dumb_scheduling_set(true);
00117                 }
00118                 sched->process();
00119                 fd = sched->get_result();
00120                                 
00121                 backend_v2_logger << "analyzing intervals for register allocation and spill code generation\n" << eolog;
00122                 ptr<alloc_int_finder> ints = alloc_int_finder::create(fd);
00123                 ints->process();
00124                 fd = ints->get_result();
00125                 
00126                 if ( optimization_register_allocation ) {
00127                         backend_v2_logger << "register allocation\n" << eolog;
00128                         ptr<linscan_regalloc> regalloc = linscan_regalloc::create(fd);
00129                         regalloc->process();
00130                         fd = regalloc->get_result();
00131                 }
00132                 
00133                 backend_v2_logger << "spillcode generation - pass 1\n" << eolog;
00134                 ptr<spillgen> spill = spillgen::create(fd);
00135                 spill->process();
00136                 fd = spill->get_result();
00137                 
00138                 backend_v2_logger << "scheduling ge-code - pass 2\n" << eolog;
00139                 sched = scheduler::create(fd);
00140                 if ( !optimization_code_scheduling ) {
00141                         sched->dumb_scheduling_set(true);
00142                 }
00143                 sched->process();
00144                 fd = sched->get_result();
00145                 
00146                 backend_v2_logger << "spillcode generation - pass 2\n" << eolog;
00147                 ptr<simple_spillgen> simple_spill = simple_spillgen::create(fd);
00148                 simple_spill->process();
00149                 fd = simple_spill->get_result();
00150                 
00151                 if ( optimization_uselesscode_elimination ) {
00152                         backend_v2_logger << "useless code elimination\n" << eolog;
00153                         ptr<useless_code_eliminator> useless = useless_code_eliminator::create(fd);
00154                         useless->process();
00155                         fd = useless->get_result();
00156                 }
00157                 
00158                 backend_v2_logger << "computing placement of the function's local variables\n" << eolog;
00159                 local_variable_allocator::instance(fd->function_decl_get())->calculate_placement();
00160                 
00161                 ptr<preasmgen_body_changes> preasm = preasmgen_body_changes::create(fd->function_decl_get(),fd->ge_body_get());
00162                 preasm->process_body();
00163                 fd->ge_body_set(preasm->get_result());
00164                 
00165                 tu_data->push_back(fd); 
00166                 
00167                 backend_v2_logger << "function body processing - end\n" << eolog;       
00168         }
00169         
00170         backend_v2_logger << "computing placement of global variables\n" << eolog;
00171         global_variable_allocator::instance()->calculate_placement();
00172         
00173         backend_v2_logger << "generating asm-code for TU\n" << eolog;
00174         ptr<asm_generator> asm_gen = asm_generator::create(output);
00175         asm_gen->generate_tu_prologue();
00176         asm_gen->generate_tu_body(tu_data);
00177         asm_gen->generate_tu_epilogue();
00178         
00179         backend_v2_logger << "main - end\n" << eolog;
00180 }

ptr< backend > lestes::backend_v2::backend::create ( ::std::ostream &  a__backend__output,
bool  a__backend__optimization_conditional_jumps,
bool  a__backend__optimization_immediate_inlining,
bool  a__backend__optimization_memory_inlining,
bool  a__backend__optimization_deadcode_elimination,
bool  a__backend__optimization_register_allocation,
bool  a__backend__optimization_uselesscode_elimination,
bool  a__backend__optimization_code_scheduling 
) [static]

First generated factory method for class backend.

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

Author:
lsg

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

References backend().

Referenced by main().

00178 {
00179         return ptr< backend > ( new backend(a__backend__output,
00180                 a__backend__optimization_conditional_jumps,
00181                 a__backend__optimization_immediate_inlining,
00182                 a__backend__optimization_memory_inlining,
00183                 a__backend__optimization_deadcode_elimination,
00184                 a__backend__optimization_register_allocation,
00185                 a__backend__optimization_uselesscode_elimination,
00186                 a__backend__optimization_code_scheduling) );
00187 }

ptr< backend > lestes::backend_v2::backend::create ( ::std::ostream &  a__backend__output  )  [static]

Second generated factory method for class backend.

This factory method for class backend uses initializers.

Author:
lsg

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

References backend().

00194 {
00195         return ptr< backend > ( new backend(a__backend__output, true, true, true, true, true, true, true) );
00196 }

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

for purposes of dumping

Reimplemented from lestes::std::object.

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

References lestes::std::list< T >::create(), reflection, and lestes::std::object::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( "output", "::std::ostream&" ) );
00220                 mdl->push_back( md::create( "optimization_conditional_jumps", "bool" ) );
00221                 mdl->push_back( md::create( "optimization_immediate_inlining", "bool" ) );
00222                 mdl->push_back( md::create( "optimization_memory_inlining", "bool" ) );
00223                 mdl->push_back( md::create( "optimization_deadcode_elimination", "bool" ) );
00224                 mdl->push_back( md::create( "optimization_register_allocation", "bool" ) );
00225                 mdl->push_back( md::create( "optimization_uselesscode_elimination", "bool" ) );
00226                 mdl->push_back( md::create( "optimization_code_scheduling", "bool" ) );
00227                 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00228                 reflection->push_back( class_reflection::create( "backend", mdl ) );
00229         }
00230         return reflection;
00231 }

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

for purposes of dumping

Reimplemented from lestes::std::object.

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

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

00234 {
00235         ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00236         result->push_back( value_list::create() );
00237         result->back()->push_back( objectize< ::std::ostream& > ::create( this->output ) );
00238         result->push_back( value_list::create() );
00239         result->back()->push_back( objectize< bool > ::create( this->optimization_conditional_jumps ) );
00240         result->push_back( value_list::create() );
00241         result->back()->push_back( objectize< bool > ::create( this->optimization_immediate_inlining ) );
00242         result->push_back( value_list::create() );
00243         result->back()->push_back( objectize< bool > ::create( this->optimization_memory_inlining ) );
00244         result->push_back( value_list::create() );
00245         result->back()->push_back( objectize< bool > ::create( this->optimization_deadcode_elimination ) );
00246         result->push_back( value_list::create() );
00247         result->back()->push_back( objectize< bool > ::create( this->optimization_register_allocation ) );
00248         result->push_back( value_list::create() );
00249         result->back()->push_back( objectize< bool > ::create( this->optimization_uselesscode_elimination ) );
00250         result->push_back( value_list::create() );
00251         result->back()->push_back( objectize< bool > ::create( this->optimization_code_scheduling ) );
00252         return result;
00253 }

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

Marking routine for class backend.

Marking routine is used for garbage collection.

Author:
lsg

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

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

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

00261 {
00262 	::lestes::std::object::gc_mark();
00263 }


Member Data Documentation

::std::ostream& lestes::backend_v2::backend::output [private]

A stream where an output asm code is flushed into.

Definition at line 125 of file backend.g.hh.

Referenced by main(), and output_get().

bool lestes::backend_v2::backend::optimization_conditional_jumps [private]

Switch that turns on/off conditional jumps optimization ( pi_cond_jmp_rewritter worker ).

Definition at line 127 of file backend.g.hh.

Referenced by main(), optimization_conditional_jumps_get(), and optimization_conditional_jumps_set().

bool lestes::backend_v2::backend::optimization_immediate_inlining [private]

Switch that turns on/off elimination of immediate loading by special load instruction rather than inlining of immediate into instructions that use it. ( literal_inliner worker ).

Definition at line 129 of file backend.g.hh.

Referenced by main(), optimization_immediate_inlining_get(), and optimization_immediate_inlining_set().

bool lestes::backend_v2::backend::optimization_memory_inlining [private]

Switch that turns on/off elimination of memory operand loading by special load instruction rather than inlining of memory operand into instructions that use it. ( memory_inliner worker ).

Definition at line 131 of file backend.g.hh.

Referenced by main(), optimization_memory_inlining_get(), and optimization_memory_inlining_set().

bool lestes::backend_v2::backend::optimization_deadcode_elimination [private]

Switch that turns on/off dead coe elimination ( dead_code_eliminator worker ).

Definition at line 133 of file backend.g.hh.

Referenced by main(), optimization_deadcode_elimination_get(), and optimization_deadcode_elimination_set().

bool lestes::backend_v2::backend::optimization_register_allocation [private]

Switch that turns on/off register allocation ( linscan_regalloc worker ).

Definition at line 135 of file backend.g.hh.

Referenced by main(), optimization_register_allocation_get(), and optimization_register_allocation_set().

bool lestes::backend_v2::backend::optimization_uselesscode_elimination [private]

Switch that turns on/off uselesscode elimination ( useless_code_eliminator worker ).

Definition at line 137 of file backend.g.hh.

Referenced by main(), optimization_uselesscode_elimination_get(), and optimization_uselesscode_elimination_set().

bool lestes::backend_v2::backend::optimization_code_scheduling [private]

Switch that turns on/off code scheduling ( scheduler worker ).

Definition at line 139 of file backend.g.hh.

Referenced by main(), optimization_code_scheduling_get(), and optimization_code_scheduling_set().

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

Reimplemented from lestes::std::object.

Definition at line 140 of file backend.g.hh.

Referenced by reflection_get().


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