lestes::backend_v2::backend Class Reference

Main backend class. More...

#include <backend.g.hh>

Inheritance diagram for lestes::backend_v2::backend:

Inheritance graph
[legend]
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.


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

The backend's main.

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

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

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

for purposes of dumping

Reimplemented from lestes::std::object.

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

for purposes of dumping

Reimplemented from lestes::std::object.

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.


Member Data Documentation

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

A stream where an output asm code is flushed into.

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

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

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 ).

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 ).

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

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

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

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

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

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

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

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

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

Reimplemented from lestes::std::object.


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