lestes::backend_v2::workers Namespace Reference


Classes

class  alloc_int_finder
 Splits liveranges to a set of intervals with nonempty intersection of sets of allowed register. More...
class  alloc_interval
 Group of pseudoinstructions that use the same register operand and it has nonempty intersection of sets of allowed registers for the operand. More...
class  bb_finder
 Identifies basic block in a function body. More...
class  basic_block
 Represents a basic block. More...
class  body_preprocessor
 Preprocesses function body before it is passed to backend's workers. More...
class  dead_code_eliminator
 Eliminates dead code. More...
class  ge_generator
 Generates ge-level intercode structures for a pi-level intecode body. More...
class  linscan_regalloc
 Provides a linearscan register allocation. More...
class  literal_inliner
 Provides immediate inlining. More...
class  liveness_analysis
 Performs liveness analysis of instruction operands. More...
class  liveness_range
 Represents liverange of an operand. More...
class  memory_inliner
 Performs inlining of memory operands. More...
class  order_governor
 Linearizes pseudopinstructions within function's body. More...
class  pi_cond_jmp_rewriter
 Performs conditional jump rewriting. More...
class  scheduler
 Performs list scheduling on a function's body based on critical path method. More...
class  schedule_item
 Represents item of a schedule. More...
class  simple_spillgen
 Performs second pass spill-code generation. More...
class  spillgen
 Performs spillgen generation. More...
class  spillgen_group
 Represents a group of operands of a pseudoinstruction that occupy the same register. More...
class  useless_code_eliminator
 Removes useless code from a function body. More...
class  worker_base
 Base class for backend workers. More...

Typedefs

typedef set< ulint > id_set__type
typedef vector< srp< ge_pi > > ge_pi_vector__type
typedef vector< srp< liveness_range > > liveness_rng_vector__type
typedef vector< srp< alloc_interval > > alloc_int_vector__type
typedef set< srp< ge_pi > > ge_pi_set__type
typedef map< srp< pi_mem_factory >,
srp< set< srp< ge_pi > > > > 
m2ge_pi_set__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< ge_pi > > ge_pi_vector__type
typedef vector< srp< ge_operand > > ge_operand_vector__type
typedef vector< srp< basic_block > > bb_vector__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< ge_operand > > ge_op_vector__type
typedef set< srp< ge_operand > > ge_op_set__type
typedef set< ulint > id_set__type
typedef list< srp< pi_pi > > pi_pi_list__type
typedef list< srp< pi_sp > > pi_sp_list__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< ge_pi > > ge_pi_vector__type
typedef vector< srp< pi_operand > > pi_operand_vector__type
typedef map< srp< pi_pi >,
srp< vector< srp< ge_pi > > > > 
pi_pi2ge_pi_vector__type
typedef map< srp< pi_operand >,
ulint > 
pi_op2count__type
typedef set< ulint > id_set__type
typedef vector< ulint > id_vector__type
typedef vector< srp< ge_pi > > ge_pi_vector__type
typedef vector< srp< liveness_range > > liveness_rng_vector__type
typedef vector< srp< alloc_interval > > alloc_int_vector__type
typedef map< ulint, srp< alloc_interval > > reg2alloc_int__type
typedef map< srp< ge_operand_reg >,
srp< tm_register > > 
ge_op_reg2tm_reg__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< ge_operand > > ge_op_vector__type
typedef map< srp< ge_operand_reg >,
srp< ge_operand_imm > > 
reg2imm__type
typedef set< ulint > id_set__type
typedef map< srp< ::lestes::backend_v2::intercode::ge_pi >,
srp< ::lestes::std::pair<
srp< set< srp< ::lestes::backend_v2::intercode::ge_operand_reg > > >,
srp< set< srp< ::lestes::backend_v2::intercode::ge_operand_reg > > > > > > 
ge_pi2inout__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef set< srp< ::lestes::backend_v2::intercode::ge_operand_reg > > ge_op_set__type
typedef ::lestes::std::pair<
srp< ge_op_set__type >, srp<
ge_op_set__type > > 
ge_op_set_pair__type
typedef vector< srp< ge_operand > > ge_op_vector__type
typedef vector< srp< ge_sp > > ge_sp_vector__type
typedef map< srp< ge_operand >,
srp< liveness_range > > 
ge_op2liveness__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< ge_operand > > ge_op_vector__type
typedef map< srp< ge_operand_reg >,
srp< ge_operand_mem > > 
reg2mem__type
typedef set< ulint > id_set__type
typedef list< srp< pi_pi > > pi_list_type
typedef list< srp< pi_sp > > sp_list_type
typedef vector< srp< pi_operand > > operand_vector_type
typedef map< srp< pi_pi >,
bool > 
pi_bool_map_type
typedef list< srp< pi_pi > > pi_list__type
typedef set< srp< ge_pi > > ge_pi_set__type
typedef vector< srp< ge_pi > > ge_pi_vector__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< basic_block > > bb_vector__type
typedef map< srp< ge_pi >,
srp< schedule_item > > 
ge2si__type
typedef set< srp< schedule_item > > si_set__type
typedef vector< srp< schedule_item > > si_vector__type
typedef set< srp< ge_pi > > ge_pi_set__type
typedef set< ulint > ulint_set__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< ge_pi > > ge_pi_vector__type
typedef vector< srp< ge_operand > > ge_operand_vector__type
typedef list< srp< pi_mem_factory > > mf_list__type
typedef map< srp< ge_operand_reg >,
srp< pi_mem_factory > > 
op2mf__type
typedef map< ulint, lstring > id2lstring__type
typedef set< srp< pi_mem_factory > > mf_set__type
typedef set< ulint > id_set__type
typedef vector< ulint > id_vector__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< liveness_range > > liveness_rng_vector__type
typedef vector< srp< alloc_interval > > alloc_int_vector__type
typedef vector< srp< ge_operand > > ge_operand_vector__type
typedef vector< srp< ge_pi > > ge_pi_vector__type
typedef set< srp< ge_pi > > ge_pi_set__type
typedef set< srp< ge_operand_reg > > ge_op_reg_set__type
typedef map< srp< pi_mem_factory >,
srp< ge_pi > > 
mf2ge_pi__type
typedef map< ulint, srp< alloc_interval > > reg2alloc_int__type
typedef map< ulint, srp< ge_pi > > reg2ge_pi__type
typedef map< ulint, lstring > id2lstring__type
typedef map< srp< ge_pi >,
ulint > 
ge2reg_map__type
typedef list< srp< spillgen_group > > spillgen_group_list__type
typedef set< srp< spillgen_group > > spillgen_group_set__type
typedef set< srp< alloc_interval > > alloc_int_set__type
typedef list< srp< ge_pi > > ge_pi_list__type
typedef vector< srp< ge_operand > > ge_operand_vector__type
typedef map< ulint, srp< pi_mem_factory > > id2mf__type
typedef set< ulint > id_set__type

Functions

 declare_logger (bblog)
 initialize_logger (bblog,"bb_finder", backend_v2_logger)
 declare_logger (log)
 initialize_logger (log,"ge_generator", backend_v2_logger)
bool alloc_int_cmp1 (srp< alloc_interval > a, srp< alloc_interval > b)
 Compares two intervals.
bool alloc_int_cmp2 (srp< alloc_interval > a, srp< alloc_interval > b)
 Compares two intervals.
 declare_logger (rlog)
 initialize_logger (rlog,"register_allocator", backend_v2_logger)
 declare_logger (og_log)
 initialize_logger (og_log,"order_governor", backend_v2_logger)
 declare_logger (schedlog)
 initialize_logger (schedlog,"scheduler", backend_v2_logger)
bool schedule_items_cmp1 (srp< schedule_item > a, srp< schedule_item > b)
 Compares latest_start_time property of schedule_item instances.
 declare_logger (slog)
 initialize_logger (slog,"spillgen", backend_v2_logger)
 declare_logger (deplog)
 initialize_logger (deplog,"spillgen_deps", backend_v2_logger)


Typedef Documentation

typedef set<srp<alloc_interval> > lestes::backend_v2::workers::alloc_int_set__type

typedef vector<srp<alloc_interval> > lestes::backend_v2::workers::alloc_int_vector__type

typedef vector<srp<alloc_interval> > lestes::backend_v2::workers::alloc_int_vector__type

typedef vector<srp<alloc_interval> > lestes::backend_v2::workers::alloc_int_vector__type

typedef vector< srp<basic_block> > lestes::backend_v2::workers::bb_vector__type

typedef vector< srp<basic_block> > lestes::backend_v2::workers::bb_vector__type

typedef map<srp<ge_pi>, ulint> lestes::backend_v2::workers::ge2reg_map__type

typedef map< srp<ge_pi>, srp<schedule_item> > lestes::backend_v2::workers::ge2si__type

typedef map<srp<ge_operand>,srp<liveness_range> > lestes::backend_v2::workers::ge_op2liveness__type

typedef map<srp<ge_operand_reg>, srp<tm_register> > lestes::backend_v2::workers::ge_op_reg2tm_reg__type

typedef set<srp<ge_operand_reg> > lestes::backend_v2::workers::ge_op_reg_set__type

typedef set< srp< ::lestes::backend_v2::intercode::ge_operand_reg > > lestes::backend_v2::workers::ge_op_set__type

typedef set< srp<ge_operand> > lestes::backend_v2::workers::ge_op_set__type

typedef ::lestes::std::pair< srp<ge_op_set__type>,srp<ge_op_set__type> > lestes::backend_v2::workers::ge_op_set_pair__type

typedef vector< srp<ge_operand> > lestes::backend_v2::workers::ge_op_vector__type

typedef vector< srp<ge_operand> > lestes::backend_v2::workers::ge_op_vector__type

typedef vector< srp<ge_operand> > lestes::backend_v2::workers::ge_op_vector__type

typedef vector< srp<ge_operand> > lestes::backend_v2::workers::ge_op_vector__type

typedef vector<srp<ge_operand> > lestes::backend_v2::workers::ge_operand_vector__type

typedef vector<srp<ge_operand> > lestes::backend_v2::workers::ge_operand_vector__type

typedef vector< srp<ge_operand> > lestes::backend_v2::workers::ge_operand_vector__type

typedef vector< srp<ge_operand> > lestes::backend_v2::workers::ge_operand_vector__type

typedef map< srp< ::lestes::backend_v2::intercode::ge_pi >, srp< ::lestes::std::pair< srp<set< srp< ::lestes::backend_v2::intercode::ge_operand_reg > > >, srp<set< srp< ::lestes::backend_v2::intercode::ge_operand_reg > > > > > > lestes::backend_v2::workers::ge_pi2inout__type

typedef list<srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list<srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list<srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef list< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_list__type

typedef set<srp<ge_pi> > lestes::backend_v2::workers::ge_pi_set__type

typedef set< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_set__type

typedef set< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_set__type

typedef set< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_set__type

typedef vector<srp<ge_pi> > lestes::backend_v2::workers::ge_pi_vector__type

typedef vector< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_vector__type

typedef vector< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_vector__type

typedef vector<srp<ge_pi> > lestes::backend_v2::workers::ge_pi_vector__type

typedef vector< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_vector__type

typedef vector< srp<ge_pi> > lestes::backend_v2::workers::ge_pi_vector__type

typedef vector<srp<ge_pi> > lestes::backend_v2::workers::ge_pi_vector__type

typedef vector< srp < ge_sp > > lestes::backend_v2::workers::ge_sp_vector__type

typedef map<ulint, lstring > lestes::backend_v2::workers::id2lstring__type

typedef map<ulint,lstring> lestes::backend_v2::workers::id2lstring__type

typedef map<ulint, srp<pi_mem_factory> > lestes::backend_v2::workers::id2mf__type

typedef set<ulint> lestes::backend_v2::workers::id_set__type

typedef set<ulint> lestes::backend_v2::workers::id_set__type

typedef set<ulint> lestes::backend_v2::workers::id_set__type

typedef set<ulint> lestes::backend_v2::workers::id_set__type

typedef set<ulint> lestes::backend_v2::workers::id_set__type

typedef set<ulint> lestes::backend_v2::workers::id_set__type

typedef set<ulint> lestes::backend_v2::workers::id_set__type

typedef vector<ulint> lestes::backend_v2::workers::id_vector__type

typedef vector<ulint> lestes::backend_v2::workers::id_vector__type

typedef vector<srp<liveness_range> > lestes::backend_v2::workers::liveness_rng_vector__type

typedef vector<srp<liveness_range> > lestes::backend_v2::workers::liveness_rng_vector__type

typedef vector<srp<liveness_range> > lestes::backend_v2::workers::liveness_rng_vector__type

typedef map<srp<pi_mem_factory>,srp<set< srp<ge_pi> > > > lestes::backend_v2::workers::m2ge_pi_set__type

typedef map<srp<pi_mem_factory>, srp<ge_pi> > lestes::backend_v2::workers::mf2ge_pi__type

typedef list<srp<pi_mem_factory> > lestes::backend_v2::workers::mf_list__type

typedef set<srp<pi_mem_factory> > lestes::backend_v2::workers::mf_set__type

typedef map<srp<ge_operand_reg>,srp<pi_mem_factory> > lestes::backend_v2::workers::op2mf__type

typedef vector< srp< pi_operand > > lestes::backend_v2::workers::operand_vector_type

typedef map< srp<pi_pi>, bool > lestes::backend_v2::workers::pi_bool_map_type

typedef list<srp<pi_pi> > lestes::backend_v2::workers::pi_list__type

typedef list< srp< pi_pi > > lestes::backend_v2::workers::pi_list_type

typedef map< srp<pi_operand>, ulint > lestes::backend_v2::workers::pi_op2count__type

typedef vector< srp<pi_operand> > lestes::backend_v2::workers::pi_operand_vector__type

typedef map< srp<pi_pi>, srp<vector<srp<ge_pi> > > > lestes::backend_v2::workers::pi_pi2ge_pi_vector__type

typedef list< srp<pi_pi> > lestes::backend_v2::workers::pi_pi_list__type

typedef list< srp<pi_sp> > lestes::backend_v2::workers::pi_sp_list__type

typedef map<ulint, srp<alloc_interval> > lestes::backend_v2::workers::reg2alloc_int__type

typedef map<ulint, srp<alloc_interval> > lestes::backend_v2::workers::reg2alloc_int__type

typedef map<ulint, srp<ge_pi> > lestes::backend_v2::workers::reg2ge_pi__type

typedef map< srp<ge_operand_reg>, srp<ge_operand_imm> > lestes::backend_v2::workers::reg2imm__type

typedef map< srp<ge_operand_reg>, srp<ge_operand_mem> > lestes::backend_v2::workers::reg2mem__type

typedef set< srp<schedule_item> > lestes::backend_v2::workers::si_set__type

typedef vector< srp<schedule_item> > lestes::backend_v2::workers::si_vector__type

typedef list< srp< pi_sp > > lestes::backend_v2::workers::sp_list_type

typedef list<srp<spillgen_group> > lestes::backend_v2::workers::spillgen_group_list__type

typedef set<srp<spillgen_group> > lestes::backend_v2::workers::spillgen_group_set__type

typedef set<ulint> lestes::backend_v2::workers::ulint_set__type


Function Documentation

bool lestes::backend_v2::workers::alloc_int_cmp1 ( srp< alloc_interval >  a,
srp< alloc_interval >  b 
)

Compares two intervals.

Parameters:
a An interval.
b An interval.
Returns:
If start of the first interval is less than start of the second interval, it returns true. False otherwise.

bool lestes::backend_v2::workers::alloc_int_cmp2 ( srp< alloc_interval >  a,
srp< alloc_interval >  b 
)

Compares two intervals.

Parameters:
a An interval.
b An interval.
Returns:
If end of the first interval is greater than end of the second interval, it returns true. False otherwise.

lestes::backend_v2::workers::declare_logger ( deplog   ) 

lestes::backend_v2::workers::declare_logger ( slog   ) 

lestes::backend_v2::workers::declare_logger ( schedlog   ) 

lestes::backend_v2::workers::declare_logger ( og_log   ) 

lestes::backend_v2::workers::declare_logger ( rlog   ) 

lestes::backend_v2::workers::declare_logger ( log   ) 

lestes::backend_v2::workers::declare_logger ( bblog   ) 

lestes::backend_v2::workers::initialize_logger ( deplog  ,
"spillgen_deps"  ,
backend_v2_logger   
)

lestes::backend_v2::workers::initialize_logger ( slog  ,
"spillgen"  ,
backend_v2_logger   
)

lestes::backend_v2::workers::initialize_logger ( schedlog  ,
"scheduler"  ,
backend_v2_logger   
)

lestes::backend_v2::workers::initialize_logger ( og_log  ,
"order_governor"  ,
backend_v2_logger   
)

lestes::backend_v2::workers::initialize_logger ( rlog  ,
"register_allocator"  ,
backend_v2_logger   
)

lestes::backend_v2::workers::initialize_logger ( log  ,
"ge_generator"  ,
backend_v2_logger   
)

lestes::backend_v2::workers::initialize_logger ( bblog  ,
"bb_finder"  ,
backend_v2_logger   
)

bool lestes::backend_v2::workers::schedule_items_cmp1 ( srp< schedule_item >  a,
srp< schedule_item >  b 
)

Compares latest_start_time property of schedule_item instances.


Generated on Mon Feb 12 18:43:12 2007 for lestes by doxygen 1.5.1-20070107