bb_finder.g.hh

Go to the documentation of this file.
00001 // This file is automatically generated, do not edit.
00002 
00003 /*!
00004         \file
00005         \author jaz
00006 */
00007 
00008 #ifndef lestes__backend_v2__workers__bb_finder_g_hh__included
00009 #define lestes__backend_v2__workers__bb_finder_g_hh__included
00010 
00011 #include <lestes/std/list.hh>
00012 #include <lestes/backend_v2/common.hh>
00013 #include <lestes/backend_v2/workers/worker_base.g.hh>
00014 
00015 #include <lestes/std/objectize_macros.hh>
00016 package(lestes);
00017 package(backend_v2);
00018 package(structs);
00019 class func_data;
00020 end_package(structs);
00021 end_package(backend_v2);
00022 end_package(lestes);
00023 
00024 package(lestes);
00025 package(backend_v2);
00026 package(intercode);
00027 class ge_pi;
00028 end_package(intercode);
00029 end_package(backend_v2);
00030 end_package(lestes);
00031 
00032 package(lestes);
00033 package(backend_v2);
00034 package(intercode);
00035 class ge_sp;
00036 end_package(intercode);
00037 end_package(backend_v2);
00038 end_package(lestes);
00039 
00040 package(lestes);
00041 package(backend_v2);
00042 package(workers);
00043 
00044 
00045 class bb_finder;
00046 class basic_block;
00047 
00048 
00049 //! Identifies basic block in a function body.
00050 class bb_finder : public worker_base {
00051 public:
00052         void process();
00053 
00054         ptr< ::lestes::backend_v2::structs::func_data > get_result();
00055 
00056         bool is_instruction_safe(ptr< ::lestes::backend_v2::intercode::ge_pi > ge);
00057 
00058         ptr< basic_block > join_blocks(ptr< basic_block > bb1, ptr< basic_block > bb2);
00059 
00060         
00061         //! First generated factory method for class bb_finder.
00062         static ptr< bb_finder > create (
00063                 ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data);
00064 
00065         
00066 
00067         //! for purposes of dumping
00068         virtual ptr<reflection_list> reflection_get() const;
00069         //! for purposes of dumping
00070         virtual ptr<field_list_list> field_values_get() const;
00071         
00072 protected:
00073         //! Generated constructor for class bb_finder.
00074         bb_finder (
00075                 ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data);
00076 
00077         //! Marking routine for class bb_finder. 
00078         virtual void gc_mark();
00079 
00080 private:
00081         static ptr<reflection_list> reflection;
00082         
00083 }; // bb_finder
00084 
00085 
00086 /*! \brief Represents a basic block.
00087 
00088 A basic block is a straight-line piece of code without any jumps or jump targets in the middle; jump targets, if any, start a block, and jumps end a block.
00089 */
00090 class basic_block : public ::lestes::std::object {
00091 public:
00092         //! The method fsp_get returns the value of the field basic_block::fsp.
00093         ptr< ::lestes::backend_v2::intercode::ge_sp > fsp_get() const;
00094 
00095         //! The method fsp_set sets the field basic_block::fsp to the given value.
00096         void fsp_set(const ptr< ::lestes::backend_v2::intercode::ge_sp > &);
00097 
00098         //! The method lsp_get returns the value of the field basic_block::lsp.
00099         ptr< ::lestes::backend_v2::intercode::ge_sp > lsp_get() const;
00100 
00101         //! The method lsp_set sets the field basic_block::lsp to the given value.
00102         void lsp_set(const ptr< ::lestes::backend_v2::intercode::ge_sp > &);
00103 
00104         //! The method instructions_get returns the value of the field basic_block::instructions.
00105         ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > instructions_get() const;
00106 
00107         //! The method instructions_set sets the field basic_block::instructions to the given value.
00108         void instructions_set(const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > & );
00109 
00110         
00111         //! First generated factory method for class basic_block.
00112         static ptr< basic_block > create (
00113                 ptr< ::lestes::backend_v2::intercode::ge_sp > a__basic_block__fsp,
00114                 ptr< ::lestes::backend_v2::intercode::ge_sp > a__basic_block__lsp,
00115                 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__basic_block__instructions);
00116 
00117         //! Second generated factory method for class basic_block.
00118         static ptr< basic_block > create (
00119                 );
00120 
00121         
00122 
00123         //! for purposes of dumping
00124         virtual ptr<reflection_list> reflection_get() const;
00125         //! for purposes of dumping
00126         virtual ptr<field_list_list> field_values_get() const;
00127         
00128 protected:
00129         //! Generated constructor for class basic_block.
00130         basic_block (
00131                 ptr< ::lestes::backend_v2::intercode::ge_sp > a__basic_block__fsp,
00132                 ptr< ::lestes::backend_v2::intercode::ge_sp > a__basic_block__lsp,
00133                 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__basic_block__instructions);
00134 
00135         //! Marking routine for class basic_block. 
00136         virtual void gc_mark();
00137 
00138 private:
00139         //! A sequencepoint that encloses beginning of the basic block.
00140         srp< ::lestes::backend_v2::intercode::ge_sp > fsp;
00141         //! A sequencepoint that encloses end of the basic block.
00142         srp< ::lestes::backend_v2::intercode::ge_sp > lsp;
00143         //! A list of the basic block's instructions.
00144         srp< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > >  instructions;
00145         static ptr<reflection_list> reflection;
00146         
00147 }; // basic_block
00148 
00149 
00150 end_package(workers);
00151 end_package(backend_v2);
00152 end_package(lestes);
00153 
00154 #endif // lestes__backend_v2__workers__bb_finder_g_hh__included

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