lestes::backend_v2::workers::pi_cond_jmp_rewriter Class Reference

Performs conditional jump rewriting. More...

#include <pi_cond_jmp_rewriter.g.hh>

Inheritance diagram for lestes::backend_v2::workers::pi_cond_jmp_rewriter:

Inheritance graph
[legend]
List of all members.

Public Member Functions

void process ()
 Rewrites conditional jumps.
ptr< ::lestes::backend_v2::structs::func_dataget_result ()
 Returns data of the currently processed function with rewritten jumps.
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< pi_cond_jmp_rewritercreate (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data)
 First generated factory method for class pi_cond_jmp_rewriter.

Protected Member Functions

 pi_cond_jmp_rewriter (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data)
 Generated constructor for class pi_cond_jmp_rewriter.
virtual void gc_mark ()
 Marking routine for class pi_cond_jmp_rewriter.

Static Private Attributes

static ptr< reflection_listreflection = reflection

Detailed Description

Performs conditional jump rewriting.

A sequence like this (that are generated by the front-end):

cmp_res = cmp(a,b) boolean_res = set_boolean_if_greater(cmp_res) jump_if_false(label)

rewrites to:

cmp_res = cmp(a,b) jump_if_not_greater(cmp_res)

The result contains one less instruction and a target architecture likely supports instruction jump_if_not_greater.


Constructor & Destructor Documentation

lestes::backend_v2::workers::pi_cond_jmp_rewriter::pi_cond_jmp_rewriter ( ptr< ::lestes::backend_v2::structs::func_data a__worker_base__data  )  [protected]

Generated constructor for class pi_cond_jmp_rewriter.

Generated constructor for class pi_cond_jmp_rewriter.

Author:
lsg


Member Function Documentation

void lestes::backend_v2::workers::pi_cond_jmp_rewriter::process (  )  [virtual]

Rewrites conditional jumps.

Implements lestes::backend_v2::workers::worker_base.

ptr< func_data > lestes::backend_v2::workers::pi_cond_jmp_rewriter::get_result (  )  [virtual]

Returns data of the currently processed function with rewritten jumps.

Implements lestes::backend_v2::workers::worker_base.

ptr< pi_cond_jmp_rewriter > lestes::backend_v2::workers::pi_cond_jmp_rewriter::create ( ptr< ::lestes::backend_v2::structs::func_data a__worker_base__data  )  [static]

First generated factory method for class pi_cond_jmp_rewriter.

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

Author:
lsg

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

for purposes of dumping

Reimplemented from lestes::backend_v2::workers::worker_base.

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

for purposes of dumping

Reimplemented from lestes::backend_v2::workers::worker_base.

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

Marking routine for class pi_cond_jmp_rewriter.

Marking routine is used for garbage collection.

Author:
lsg

Reimplemented from lestes::backend_v2::workers::worker_base.


Member Data Documentation

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

Reimplemented from lestes::backend_v2::workers::worker_base.


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