lestes::backend_v2::workers::alloc_interval Class Reference

Group of pseudoinstructions that use the same register operand and it has nonempty intersection of sets of allowed registers for the operand. More...

#include <alloc_int_finder.g.hh>

Inheritance diagram for lestes::backend_v2::workers::alloc_interval:

Inheritance graph
[legend]
List of all members.

Public Member Functions

ptr< ::lestes::backend_v2::intercode::ge_operand_regoperand_get () const
 The method operand_get returns the value of the field alloc_interval::operand.
void operand_set (const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &)
 The method operand_set sets the field alloc_interval::operand to the given value.
ptr< ::lestes::backend_v2::workers::liveness_rangerng_get () const
 The method rng_get returns the value of the field alloc_interval::rng.
void rng_set (const ptr< ::lestes::backend_v2::workers::liveness_range > &)
 The method rng_set sets the field alloc_interval::rng to the given value.
ptr< alloc_intervalprev_get () const
 The method prev_get returns the value of the field alloc_interval::prev.
void prev_set (const ptr< alloc_interval > &)
 The method prev_set sets the field alloc_interval::prev to the given value.
ptr< alloc_intervalnext_get () const
 The method next_get returns the value of the field alloc_interval::next.
void next_set (const ptr< alloc_interval > &)
 The method next_set sets the field alloc_interval::next to the given value.
ptr< ::lestes::backend_v2::intercode::pi_mem_factoryallocated_spill_place_get () const
 The method allocated_spill_place_get returns the value of the field alloc_interval::allocated_spill_place.
void allocated_spill_place_set (const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > &)
 The method allocated_spill_place_set sets the field alloc_interval::allocated_spill_place to the given value.
ptr< ::lestes::md::registers::tm_registerallocated_reg_get () const
 The method allocated_reg_get returns the value of the field alloc_interval::allocated_reg.
void allocated_reg_set (const ptr< ::lestes::md::registers::tm_register > &)
 The method allocated_reg_set sets the field alloc_interval::allocated_reg to the given value.
ptr< alloc_intervalallocated_obj_prev_owner_get () const
 The method allocated_obj_prev_owner_get returns the value of the field alloc_interval::allocated_obj_prev_owner.
void allocated_obj_prev_owner_set (const ptr< alloc_interval > &)
 The method allocated_obj_prev_owner_set sets the field alloc_interval::allocated_obj_prev_owner to the given value.
ulint start_get () const
 The method start_get returns the value of the field alloc_interval::start.
void start_set (ulint)
 The method start_set sets the field alloc_interval::start to the given value.
ulint end_get () const
 The method end_get returns the value of the field alloc_interval::end.
void end_set (ulint)
 The method end_set sets the field alloc_interval::end to the given value.
ptr< ::lestes::std::vector<
srp< ::lestes::backend_v2::intercode::ge_pi > > > 
instructions_get () const
 The method instructions_get returns the value of the field alloc_interval::instructions.
void instructions_set (const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > &)
 The method instructions_set sets the field alloc_interval::instructions to the given value.
ptr< ::lestes::std::set< ulint > > allowed_registers_get () const
 The method allowed_registers_get returns the value of the field alloc_interval::allowed_registers.
void allowed_registers_set (const ptr< ::lestes::std::set< ulint > > &)
 The method allowed_registers_set sets the field alloc_interval::allowed_registers 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< alloc_intervalcreate (ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__alloc_interval__operand, ptr< ::lestes::backend_v2::workers::liveness_range > a__alloc_interval__rng, ptr< alloc_interval > a__alloc_interval__prev, ptr< alloc_interval > a__alloc_interval__next, ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__alloc_interval__allocated_spill_place, ptr< ::lestes::md::registers::tm_register > a__alloc_interval__allocated_reg, ptr< alloc_interval > a__alloc_interval__allocated_obj_prev_owner, ulint a__alloc_interval__start, ulint a__alloc_interval__end, ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__alloc_interval__instructions, ptr< ::lestes::std::set< ulint > > a__alloc_interval__allowed_registers)
 First generated factory method for class alloc_interval.
static ptr< alloc_intervalcreate (ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__alloc_interval__operand, ptr< ::lestes::backend_v2::workers::liveness_range > a__alloc_interval__rng)
 Second generated factory method for class alloc_interval.

Protected Member Functions

 alloc_interval (ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__alloc_interval__operand, ptr< ::lestes::backend_v2::workers::liveness_range > a__alloc_interval__rng, ptr< alloc_interval > a__alloc_interval__prev, ptr< alloc_interval > a__alloc_interval__next, ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__alloc_interval__allocated_spill_place, ptr< ::lestes::md::registers::tm_register > a__alloc_interval__allocated_reg, ptr< alloc_interval > a__alloc_interval__allocated_obj_prev_owner, ulint a__alloc_interval__start, ulint a__alloc_interval__end, ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__alloc_interval__instructions, ptr< ::lestes::std::set< ulint > > a__alloc_interval__allowed_registers)
 Generated constructor for class alloc_interval.
virtual void gc_mark ()
 Marking routine for class alloc_interval.

Private Attributes

srp< ::lestes::backend_v2::intercode::ge_operand_regoperand
 A operand.
srp< ::lestes::backend_v2::workers::liveness_rangerng
 A source live range.
srp< alloc_intervalprev
 A preceding interval of the source live range.
srp< alloc_intervalnext
 A following interval of the source live range.
srp< ::lestes::backend_v2::intercode::pi_mem_factoryallocated_spill_place
 An allocated spillplace for the interval.
srp< ::lestes::md::registers::tm_registerallocated_reg
 An allocated register for the interval.
srp< alloc_intervalallocated_obj_prev_owner
 An interval that uses the allocated object (register, spillplace) before the current interval.
ulint start
 A schedule position of the first pseudoinstruction of the interval.
ulint end
 A schedule position of the last pseudoinstruction of the interval.
srp< ::lestes::std::vector<
srp< ::lestes::backend_v2::intercode::ge_pi > > > 
instructions
 A list of instruction of the interval.
srp< ::lestes::std::set< ulint > > allowed_registers
 A list of allowed registers for the interval.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Group of pseudoinstructions that use the same register operand and it has nonempty intersection of sets of allowed registers for the operand.

A register allocator takes a set of intervals and allocates a register to each interval. The operand uses the same allocated register within every pseudoinstruction of the group.


Constructor & Destructor Documentation

lestes::backend_v2::workers::alloc_interval::alloc_interval ( ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__alloc_interval__operand,
ptr< ::lestes::backend_v2::workers::liveness_range a__alloc_interval__rng,
ptr< alloc_interval a__alloc_interval__prev,
ptr< alloc_interval a__alloc_interval__next,
ptr< ::lestes::backend_v2::intercode::pi_mem_factory a__alloc_interval__allocated_spill_place,
ptr< ::lestes::md::registers::tm_register a__alloc_interval__allocated_reg,
ptr< alloc_interval a__alloc_interval__allocated_obj_prev_owner,
ulint  a__alloc_interval__start,
ulint  a__alloc_interval__end,
ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > >  a__alloc_interval__instructions,
ptr< ::lestes::std::set< ulint > >  a__alloc_interval__allowed_registers 
) [protected]

Generated constructor for class alloc_interval.

Generated constructor for class alloc_interval.

Author:
lsg


Member Function Documentation

ptr<::lestes::backend_v2::intercode::ge_operand_reg > lestes::backend_v2::workers::alloc_interval::operand_get (  )  const

The method operand_get returns the value of the field alloc_interval::operand.

Returns:
The value of alloc_interval::operand.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::operand_set ( const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &  x  ) 

The method operand_set sets the field alloc_interval::operand to the given value.

Parameters:
[in] x The new value to set alloc_interval::operand to.
Author:
lsg

ptr<::lestes::backend_v2::workers::liveness_range > lestes::backend_v2::workers::alloc_interval::rng_get (  )  const

The method rng_get returns the value of the field alloc_interval::rng.

Returns:
The value of alloc_interval::rng.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::rng_set ( const ptr< ::lestes::backend_v2::workers::liveness_range > &  x  ) 

The method rng_set sets the field alloc_interval::rng to the given value.

Parameters:
[in] x The new value to set alloc_interval::rng to.
Author:
lsg

ptr< alloc_interval > lestes::backend_v2::workers::alloc_interval::prev_get (  )  const

The method prev_get returns the value of the field alloc_interval::prev.

Returns:
The value of alloc_interval::prev.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::prev_set ( const ptr< alloc_interval > &  x  ) 

The method prev_set sets the field alloc_interval::prev to the given value.

Parameters:
[in] x The new value to set alloc_interval::prev to.
Author:
lsg

ptr< alloc_interval > lestes::backend_v2::workers::alloc_interval::next_get (  )  const

The method next_get returns the value of the field alloc_interval::next.

Returns:
The value of alloc_interval::next.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::next_set ( const ptr< alloc_interval > &  x  ) 

The method next_set sets the field alloc_interval::next to the given value.

Parameters:
[in] x The new value to set alloc_interval::next to.
Author:
lsg

ptr<::lestes::backend_v2::intercode::pi_mem_factory > lestes::backend_v2::workers::alloc_interval::allocated_spill_place_get (  )  const

The method allocated_spill_place_get returns the value of the field alloc_interval::allocated_spill_place.

Returns:
The value of alloc_interval::allocated_spill_place.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::allocated_spill_place_set ( const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > &  x  ) 

The method allocated_spill_place_set sets the field alloc_interval::allocated_spill_place to the given value.

Parameters:
[in] x The new value to set alloc_interval::allocated_spill_place to.
Author:
lsg

ptr<::lestes::md::registers::tm_register > lestes::backend_v2::workers::alloc_interval::allocated_reg_get (  )  const

The method allocated_reg_get returns the value of the field alloc_interval::allocated_reg.

Returns:
The value of alloc_interval::allocated_reg.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::allocated_reg_set ( const ptr< ::lestes::md::registers::tm_register > &  x  ) 

The method allocated_reg_set sets the field alloc_interval::allocated_reg to the given value.

Parameters:
[in] x The new value to set alloc_interval::allocated_reg to.
Author:
lsg

ptr< alloc_interval > lestes::backend_v2::workers::alloc_interval::allocated_obj_prev_owner_get (  )  const

The method allocated_obj_prev_owner_get returns the value of the field alloc_interval::allocated_obj_prev_owner.

Returns:
The value of alloc_interval::allocated_obj_prev_owner.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::allocated_obj_prev_owner_set ( const ptr< alloc_interval > &  x  ) 

The method allocated_obj_prev_owner_set sets the field alloc_interval::allocated_obj_prev_owner to the given value.

Parameters:
[in] x The new value to set alloc_interval::allocated_obj_prev_owner to.
Author:
lsg

ulint lestes::backend_v2::workers::alloc_interval::start_get (  )  const

The method start_get returns the value of the field alloc_interval::start.

Returns:
The value of alloc_interval::start.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::start_set ( ulint  x  ) 

The method start_set sets the field alloc_interval::start to the given value.

Parameters:
[in] x The new value to set alloc_interval::start to.
Author:
lsg

ulint lestes::backend_v2::workers::alloc_interval::end_get (  )  const

The method end_get returns the value of the field alloc_interval::end.

Returns:
The value of alloc_interval::end.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::end_set ( ulint  x  ) 

The method end_set sets the field alloc_interval::end to the given value.

Parameters:
[in] x The new value to set alloc_interval::end to.
Author:
lsg

ptr<::lestes::std::vector< srp<::lestes::backend_v2::intercode::ge_pi > > > lestes::backend_v2::workers::alloc_interval::instructions_get (  )  const

The method instructions_get returns the value of the field alloc_interval::instructions.

Returns:
The value of alloc_interval::instructions.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::instructions_set ( const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > &  x  ) 

The method instructions_set sets the field alloc_interval::instructions to the given value.

Parameters:
[in] x The new value to set alloc_interval::instructions to.
Author:
lsg

ptr<::lestes::std::set< ulint > > lestes::backend_v2::workers::alloc_interval::allowed_registers_get (  )  const

The method allowed_registers_get returns the value of the field alloc_interval::allowed_registers.

Returns:
The value of alloc_interval::allowed_registers.
Author:
lsg

void lestes::backend_v2::workers::alloc_interval::allowed_registers_set ( const ptr< ::lestes::std::set< ulint > > &  x  ) 

The method allowed_registers_set sets the field alloc_interval::allowed_registers to the given value.

Parameters:
[in] x The new value to set alloc_interval::allowed_registers to.
Author:
lsg

ptr< alloc_interval > lestes::backend_v2::workers::alloc_interval::create ( ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__alloc_interval__operand,
ptr< ::lestes::backend_v2::workers::liveness_range a__alloc_interval__rng,
ptr< alloc_interval a__alloc_interval__prev,
ptr< alloc_interval a__alloc_interval__next,
ptr< ::lestes::backend_v2::intercode::pi_mem_factory a__alloc_interval__allocated_spill_place,
ptr< ::lestes::md::registers::tm_register a__alloc_interval__allocated_reg,
ptr< alloc_interval a__alloc_interval__allocated_obj_prev_owner,
ulint  a__alloc_interval__start,
ulint  a__alloc_interval__end,
ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > >  a__alloc_interval__instructions,
ptr< ::lestes::std::set< ulint > >  a__alloc_interval__allowed_registers 
) [static]

First generated factory method for class alloc_interval.

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

Author:
lsg

ptr< alloc_interval > lestes::backend_v2::workers::alloc_interval::create ( ptr< ::lestes::backend_v2::intercode::ge_operand_reg a__alloc_interval__operand,
ptr< ::lestes::backend_v2::workers::liveness_range a__alloc_interval__rng 
) [static]

Second generated factory method for class alloc_interval.

This factory method for class alloc_interval uses initializers.

Author:
lsg

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

for purposes of dumping

Reimplemented from lestes::std::object.

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

for purposes of dumping

Reimplemented from lestes::std::object.

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

Marking routine for class alloc_interval.

Marking routine is used for garbage collection.

Author:
lsg

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


Member Data Documentation

srp< ::lestes::backend_v2::intercode::ge_operand_reg > lestes::backend_v2::workers::alloc_interval::operand [private]

A operand.

srp< ::lestes::backend_v2::workers::liveness_range > lestes::backend_v2::workers::alloc_interval::rng [private]

A source live range.

srp< alloc_interval > lestes::backend_v2::workers::alloc_interval::prev [private]

A preceding interval of the source live range.

srp< alloc_interval > lestes::backend_v2::workers::alloc_interval::next [private]

A following interval of the source live range.

srp< ::lestes::backend_v2::intercode::pi_mem_factory > lestes::backend_v2::workers::alloc_interval::allocated_spill_place [private]

An allocated spillplace for the interval.

srp< ::lestes::md::registers::tm_register > lestes::backend_v2::workers::alloc_interval::allocated_reg [private]

An allocated register for the interval.

srp< alloc_interval > lestes::backend_v2::workers::alloc_interval::allocated_obj_prev_owner [private]

An interval that uses the allocated object (register, spillplace) before the current interval.

ulint lestes::backend_v2::workers::alloc_interval::start [private]

A schedule position of the first pseudoinstruction of the interval.

ulint lestes::backend_v2::workers::alloc_interval::end [private]

A schedule position of the last pseudoinstruction of the interval.

srp< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > lestes::backend_v2::workers::alloc_interval::instructions [private]

A list of instruction of the interval.

srp< ::lestes::std::set< ulint > > lestes::backend_v2::workers::alloc_interval::allowed_registers [private]

A list of allowed registers for the interval.

ptr< object::reflection_list > lestes::backend_v2::workers::alloc_interval::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:43:13 2007 for lestes by doxygen 1.5.1-20070107