lestes::backend_v2::intercode::ge_pi Class Reference

Ge-level intercode pseudoinstruction. More...

#include <ge.g.hh>

Inheritance diagram for lestes::backend_v2::intercode::ge_pi:

Inheritance graph
[legend]
List of all members.

Public Types

enum  kind_type { PI, SP, CALL }
 Pseudoinstruction kinds. More...
enum  property_id_type { PROPERTY_SPILLGEN_INFO }
 Property ids. More...

Public Member Functions

ptr< ::lestes::md::instructions::tm_instr_baseinstruction_get () const
 The method instruction_get returns the value of the field ge_pi::instruction.
void instruction_set (const ptr< ::lestes::md::instructions::tm_instr_base > &)
 The method instruction_set sets the field ge_pi::instruction to the given value.
ptr< ::lestes::backend_v2::intercode::pi_pipi_source_get () const
 The method pi_source_get returns the value of the field ge_pi::pi_source.
void pi_source_set (const ptr< ::lestes::backend_v2::intercode::pi_pi > &)
 The method pi_source_set sets the field ge_pi::pi_source to the given value.
ptr< ::lestes::std::vector<
srp< ge_operand > > > 
operands_input_get () const
 The method operands_input_get returns the value of the field ge_pi::operands_input.
void operands_input_set (const ptr< ::lestes::std::vector< srp< ge_operand > > > &)
 The method operands_input_set sets the field ge_pi::operands_input to the given value.
ptr< ::lestes::std::vector<
srp< ge_operand > > > 
operands_output_get () const
 The method operands_output_get returns the value of the field ge_pi::operands_output.
void operands_output_set (const ptr< ::lestes::std::vector< srp< ge_operand > > > &)
 The method operands_output_set sets the field ge_pi::operands_output to the given value.
ptr< ::lestes::std::set< srp<
ge_pi > > > 
dependencies_get () const
 The method dependencies_get returns the value of the field ge_pi::dependencies.
void dependencies_set (const ptr< ::lestes::std::set< srp< ge_pi > > > &)
 The method dependencies_set sets the field ge_pi::dependencies to the given value.
ptr< ::lestes::std::vector<
srp< ge_sp > > > 
jmp_targets_get () const
 The method jmp_targets_get returns the value of the field ge_pi::jmp_targets.
void jmp_targets_set (const ptr< ::lestes::std::vector< srp< ge_sp > > > &)
 The method jmp_targets_set sets the field ge_pi::jmp_targets to the given value.
ulint schedule_pos_get () const
 The method schedule_pos_get returns the value of the field ge_pi::schedule_pos.
void schedule_pos_set (ulint)
 The method schedule_pos_set sets the field ge_pi::schedule_pos to the given value.
ptr< ::lestes::backend_v2::workers::basic_blockbb_get () const
 The method bb_get returns the value of the field ge_pi::bb.
void bb_set (const ptr< ::lestes::backend_v2::workers::basic_block > &)
 The method bb_set sets the field ge_pi::bb to the given value.
ptr< ::lestes::std::map< ulint,
lstring > > 
properties_get () const
 The method properties_get returns the value of the field ge_pi::properties.
void properties_set (const ptr< ::lestes::std::map< ulint, lstring > > &)
 The method properties_set sets the field ge_pi::properties to the given value.
virtual ge_pi::kind_type kind_get ()
 Returns kind of the pseudoinstruction.
bool validate ()
 Tells whether the pseudoinstruction is consistent with target machine instruction that it represents.
virtual lstring accept_visitor_ge_pi2lstring_gen_base (ptr< visitor_ge_pi2lstring_gen_base > v)
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< ge_picreate (ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction, ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source, ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_input, ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_output, ptr< ::lestes::std::set< srp< ge_pi > > > a__ge_pi__dependencies, ptr< ::lestes::std::vector< srp< ge_sp > > > a__ge_pi__jmp_targets, ulint a__ge_pi__schedule_pos, ptr< ::lestes::backend_v2::workers::basic_block > a__ge_pi__bb, ptr< ::lestes::std::map< ulint, lstring > > a__ge_pi__properties)
 First generated factory method for class ge_pi.
static ptr< ge_picreate (ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction, ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source)
 Second generated factory method for class ge_pi.

Protected Member Functions

 ge_pi (ptr< ::lestes::md::instructions::tm_instr_base > a__ge_pi__instruction, ptr< ::lestes::backend_v2::intercode::pi_pi > a__ge_pi__pi_source, ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_input, ptr< ::lestes::std::vector< srp< ge_operand > > > a__ge_pi__operands_output, ptr< ::lestes::std::set< srp< ge_pi > > > a__ge_pi__dependencies, ptr< ::lestes::std::vector< srp< ge_sp > > > a__ge_pi__jmp_targets, ulint a__ge_pi__schedule_pos, ptr< ::lestes::backend_v2::workers::basic_block > a__ge_pi__bb, ptr< ::lestes::std::map< ulint, lstring > > a__ge_pi__properties)
 Generated constructor for class ge_pi.
virtual void gc_mark ()
 Marking routine for class ge_pi.

Private Attributes

srp< ::lestes::md::instructions::tm_instr_baseinstruction
 A description of a target machine instruction represented by this pseudoinstruction.
srp< ::lestes::backend_v2::intercode::pi_pipi_source
 A pi-level pseudoinstruction that the ge_pi pseudoinstruction derives from.
srp< ::lestes::std::vector<
srp< ge_operand > > > 
operands_input
 Pseudoinstruction's input operands.
srp< ::lestes::std::vector<
srp< ge_operand > > > 
operands_output
 Pseudoinstruction's output operands.
srp< ::lestes::std::set< srp<
ge_pi > > > 
dependencies
 A set of pseudoinstructions that this one depends on.
srp< ::lestes::std::vector<
srp< ge_sp > > > 
jmp_targets
 If the pseudoinstruction represents jump instruction then this is the list of its jump targets.
ulint schedule_pos
 A position in a function body schedule.
srp< ::lestes::backend_v2::workers::basic_blockbb
 A basic block that contains this pseudoinstruction.
srp< ::lestes::std::map< ulint,
lstring > > 
properties
 Custom properties.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Ge-level intercode pseudoinstruction.

Ge-level intercode is intercode used by backend. Every ge_pi pseudoinstruction represents single target machine instruction.


Member Enumeration Documentation

enum lestes::backend_v2::intercode::ge_pi::kind_type

Pseudoinstruction kinds.

Enumerator:
PI 
SP 
CALL 

enum lestes::backend_v2::intercode::ge_pi::property_id_type

Property ids.

Enumerator:
PROPERTY_SPILLGEN_INFO 


Constructor & Destructor Documentation

lestes::backend_v2::intercode::ge_pi::ge_pi ( ptr< ::lestes::md::instructions::tm_instr_base a__ge_pi__instruction,
ptr< ::lestes::backend_v2::intercode::pi_pi a__ge_pi__pi_source,
ptr< ::lestes::std::vector< srp< ge_operand > > >  a__ge_pi__operands_input,
ptr< ::lestes::std::vector< srp< ge_operand > > >  a__ge_pi__operands_output,
ptr< ::lestes::std::set< srp< ge_pi > > >  a__ge_pi__dependencies,
ptr< ::lestes::std::vector< srp< ge_sp > > >  a__ge_pi__jmp_targets,
ulint  a__ge_pi__schedule_pos,
ptr< ::lestes::backend_v2::workers::basic_block a__ge_pi__bb,
ptr< ::lestes::std::map< ulint, lstring > >  a__ge_pi__properties 
) [protected]

Generated constructor for class ge_pi.

Generated constructor for class ge_pi.

Author:
lsg


Member Function Documentation

ptr<::lestes::md::instructions::tm_instr_base > lestes::backend_v2::intercode::ge_pi::instruction_get (  )  const

The method instruction_get returns the value of the field ge_pi::instruction.

Returns:
The value of ge_pi::instruction.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::instruction_set ( const ptr< ::lestes::md::instructions::tm_instr_base > &  x  ) 

The method instruction_set sets the field ge_pi::instruction to the given value.

Parameters:
[in] x The new value to set ge_pi::instruction to.
Author:
lsg

ptr<::lestes::backend_v2::intercode::pi_pi > lestes::backend_v2::intercode::ge_pi::pi_source_get (  )  const

The method pi_source_get returns the value of the field ge_pi::pi_source.

Returns:
The value of ge_pi::pi_source.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::pi_source_set ( const ptr< ::lestes::backend_v2::intercode::pi_pi > &  x  ) 

The method pi_source_set sets the field ge_pi::pi_source to the given value.

Parameters:
[in] x The new value to set ge_pi::pi_source to.
Author:
lsg

ptr<::lestes::std::vector< srp< ge_operand > > > lestes::backend_v2::intercode::ge_pi::operands_input_get (  )  const

The method operands_input_get returns the value of the field ge_pi::operands_input.

Returns:
The value of ge_pi::operands_input.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::operands_input_set ( const ptr< ::lestes::std::vector< srp< ge_operand > > > &  x  ) 

The method operands_input_set sets the field ge_pi::operands_input to the given value.

Parameters:
[in] x The new value to set ge_pi::operands_input to.
Author:
lsg

ptr<::lestes::std::vector< srp< ge_operand > > > lestes::backend_v2::intercode::ge_pi::operands_output_get (  )  const

The method operands_output_get returns the value of the field ge_pi::operands_output.

Returns:
The value of ge_pi::operands_output.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::operands_output_set ( const ptr< ::lestes::std::vector< srp< ge_operand > > > &  x  ) 

The method operands_output_set sets the field ge_pi::operands_output to the given value.

Parameters:
[in] x The new value to set ge_pi::operands_output to.
Author:
lsg

ptr<::lestes::std::set< srp< ge_pi > > > lestes::backend_v2::intercode::ge_pi::dependencies_get (  )  const

The method dependencies_get returns the value of the field ge_pi::dependencies.

Returns:
The value of ge_pi::dependencies.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::dependencies_set ( const ptr< ::lestes::std::set< srp< ge_pi > > > &  x  ) 

The method dependencies_set sets the field ge_pi::dependencies to the given value.

Parameters:
[in] x The new value to set ge_pi::dependencies to.
Author:
lsg

ptr<::lestes::std::vector< srp< ge_sp > > > lestes::backend_v2::intercode::ge_pi::jmp_targets_get (  )  const

The method jmp_targets_get returns the value of the field ge_pi::jmp_targets.

Returns:
The value of ge_pi::jmp_targets.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::jmp_targets_set ( const ptr< ::lestes::std::vector< srp< ge_sp > > > &  x  ) 

The method jmp_targets_set sets the field ge_pi::jmp_targets to the given value.

Parameters:
[in] x The new value to set ge_pi::jmp_targets to.
Author:
lsg

ulint lestes::backend_v2::intercode::ge_pi::schedule_pos_get (  )  const

The method schedule_pos_get returns the value of the field ge_pi::schedule_pos.

Returns:
The value of ge_pi::schedule_pos.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::schedule_pos_set ( ulint  x  ) 

The method schedule_pos_set sets the field ge_pi::schedule_pos to the given value.

Parameters:
[in] x The new value to set ge_pi::schedule_pos to.
Author:
lsg

ptr<::lestes::backend_v2::workers::basic_block > lestes::backend_v2::intercode::ge_pi::bb_get (  )  const

The method bb_get returns the value of the field ge_pi::bb.

Returns:
The value of ge_pi::bb.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::bb_set ( const ptr< ::lestes::backend_v2::workers::basic_block > &  x  ) 

The method bb_set sets the field ge_pi::bb to the given value.

Parameters:
[in] x The new value to set ge_pi::bb to.
Author:
lsg

ptr<::lestes::std::map< ulint, lstring > > lestes::backend_v2::intercode::ge_pi::properties_get (  )  const

The method properties_get returns the value of the field ge_pi::properties.

Returns:
The value of ge_pi::properties.
Author:
lsg

void lestes::backend_v2::intercode::ge_pi::properties_set ( const ptr< ::lestes::std::map< ulint, lstring > > &  x  ) 

The method properties_set sets the field ge_pi::properties to the given value.

Parameters:
[in] x The new value to set ge_pi::properties to.
Author:
lsg

ge_pi::kind_type lestes::backend_v2::intercode::ge_pi::kind_get (  )  [virtual]

Returns kind of the pseudoinstruction.

Reimplemented in lestes::backend_v2::intercode::ge_sp, and lestes::backend_v2::intercode::ge_call.

bool lestes::backend_v2::intercode::ge_pi::validate (  ) 

Tells whether the pseudoinstruction is consistent with target machine instruction that it represents.

Returns:
If the pseudoinstruction with instruction is consistent then true. False otherwise.

lstring lestes::backend_v2::intercode::ge_pi::accept_visitor_ge_pi2lstring_gen_base ( ptr< visitor_ge_pi2lstring_gen_base v  )  [virtual]

Reimplemented in lestes::backend_v2::intercode::ge_sp, and lestes::backend_v2::intercode::ge_call.

ptr< ge_pi > lestes::backend_v2::intercode::ge_pi::create ( ptr< ::lestes::md::instructions::tm_instr_base a__ge_pi__instruction,
ptr< ::lestes::backend_v2::intercode::pi_pi a__ge_pi__pi_source,
ptr< ::lestes::std::vector< srp< ge_operand > > >  a__ge_pi__operands_input,
ptr< ::lestes::std::vector< srp< ge_operand > > >  a__ge_pi__operands_output,
ptr< ::lestes::std::set< srp< ge_pi > > >  a__ge_pi__dependencies,
ptr< ::lestes::std::vector< srp< ge_sp > > >  a__ge_pi__jmp_targets,
ulint  a__ge_pi__schedule_pos,
ptr< ::lestes::backend_v2::workers::basic_block a__ge_pi__bb,
ptr< ::lestes::std::map< ulint, lstring > >  a__ge_pi__properties 
) [static]

First generated factory method for class ge_pi.

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

Author:
lsg

ptr< ge_pi > lestes::backend_v2::intercode::ge_pi::create ( ptr< ::lestes::md::instructions::tm_instr_base a__ge_pi__instruction,
ptr< ::lestes::backend_v2::intercode::pi_pi a__ge_pi__pi_source 
) [static]

Second generated factory method for class ge_pi.

This factory method for class ge_pi uses initializers.

Author:
lsg

Reimplemented in lestes::backend_v2::intercode::ge_sp.

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

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::backend_v2::intercode::ge_sp, and lestes::backend_v2::intercode::ge_call.

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

for purposes of dumping

Reimplemented from lestes::std::object.

Reimplemented in lestes::backend_v2::intercode::ge_sp, and lestes::backend_v2::intercode::ge_call.

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

Marking routine for class ge_pi.

Marking routine is used for garbage collection.

Author:
lsg

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

Reimplemented in lestes::backend_v2::intercode::ge_sp, and lestes::backend_v2::intercode::ge_call.


Member Data Documentation

srp< ::lestes::md::instructions::tm_instr_base > lestes::backend_v2::intercode::ge_pi::instruction [private]

A description of a target machine instruction represented by this pseudoinstruction.

srp< ::lestes::backend_v2::intercode::pi_pi > lestes::backend_v2::intercode::ge_pi::pi_source [private]

A pi-level pseudoinstruction that the ge_pi pseudoinstruction derives from.

Note: A single pi-pseudoinstruction is usually source for multiple ge-pseudoinstructions.

srp< ::lestes::std::vector< srp< ge_operand > > > lestes::backend_v2::intercode::ge_pi::operands_input [private]

Pseudoinstruction's input operands.

srp< ::lestes::std::vector< srp< ge_operand > > > lestes::backend_v2::intercode::ge_pi::operands_output [private]

Pseudoinstruction's output operands.

srp< ::lestes::std::set< srp< ge_pi > > > lestes::backend_v2::intercode::ge_pi::dependencies [private]

A set of pseudoinstructions that this one depends on.

This is the crucial information for pseudoinstruction ordering. Each pseudoinstruction from the set must be executed before this pseudoinstruction.

srp< ::lestes::std::vector< srp< ge_sp > > > lestes::backend_v2::intercode::ge_pi::jmp_targets [private]

If the pseudoinstruction represents jump instruction then this is the list of its jump targets.

ulint lestes::backend_v2::intercode::ge_pi::schedule_pos [private]

A position in a function body schedule.

srp< ::lestes::backend_v2::workers::basic_block > lestes::backend_v2::intercode::ge_pi::bb [private]

A basic block that contains this pseudoinstruction.

srp< ::lestes::std::map< ulint, lstring > > lestes::backend_v2::intercode::ge_pi::properties [private]

Custom properties.

It allows the pseudoinstruction holding a additional custom properties ( i.e. informatin for debugging )/

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

Reimplemented from lestes::std::object.

Reimplemented in lestes::backend_v2::intercode::ge_sp, and lestes::backend_v2::intercode::ge_call.


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