func_data.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__structs__func_data_g_hh__included
00009 #define lestes__backend_v2__structs__func_data_g_hh__included
00010 
00011 #include <lestes/std/list.hh>
00012 #include <lestes/std/vector.hh>
00013 #include <lestes/backend_v2/common.hh>
00014 
00015 #include <lestes/std/objectize_macros.hh>
00016 package(lestes);
00017 package(std);
00018 class object;
00019 end_package(std);
00020 end_package(lestes);
00021 
00022 package(lestes);
00023 package(lang);
00024 package(cplus);
00025 package(sem);
00026 class ss_function_declaration;
00027 end_package(sem);
00028 end_package(cplus);
00029 end_package(lang);
00030 end_package(lestes);
00031 
00032 package(lestes);
00033 package(backend_v2);
00034 package(intercode);
00035 class pi_pi;
00036 end_package(intercode);
00037 end_package(backend_v2);
00038 end_package(lestes);
00039 
00040 package(lestes);
00041 package(backend_v2);
00042 package(intercode);
00043 class pi_sp;
00044 end_package(intercode);
00045 end_package(backend_v2);
00046 end_package(lestes);
00047 
00048 package(lestes);
00049 package(backend_v2);
00050 package(intercode);
00051 class ge_pi;
00052 end_package(intercode);
00053 end_package(backend_v2);
00054 end_package(lestes);
00055 
00056 package(lestes);
00057 package(backend_v2);
00058 package(workers);
00059 class basic_block;
00060 end_package(workers);
00061 end_package(backend_v2);
00062 end_package(lestes);
00063 
00064 package(lestes);
00065 package(backend_v2);
00066 package(workers);
00067 class alloc_interval;
00068 end_package(workers);
00069 end_package(backend_v2);
00070 end_package(lestes);
00071 
00072 package(lestes);
00073 package(backend_v2);
00074 package(structs);
00075 
00076 
00077 class func_data;
00078 
00079 
00080 /*! \brief A represenation of a function's body.
00081 
00082 This structure is pased through the backend's pipeline, each worker processes it and updates it with its results.
00083 */
00084 class func_data : public ::lestes::std::object {
00085 public:
00086         //! The method function_decl_get returns the value of the field func_data::function_decl.
00087         ptr< ::lestes::lang::cplus::sem::ss_function_declaration > function_decl_get() const;
00088 
00089         //! The method function_decl_set sets the field func_data::function_decl to the given value.
00090         void function_decl_set(const ptr< ::lestes::lang::cplus::sem::ss_function_declaration > &);
00091 
00092         //! The method pi_body_get returns the value of the field func_data::pi_body.
00093         ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > pi_body_get() const;
00094 
00095         //! The method pi_body_set sets the field func_data::pi_body to the given value.
00096         void pi_body_set(const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > & );
00097 
00098         //! The method ge_body_get returns the value of the field func_data::ge_body.
00099         ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > ge_body_get() const;
00100 
00101         //! The method ge_body_set sets the field func_data::ge_body to the given value.
00102         void ge_body_set(const ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > & );
00103 
00104         //! The method bbs_get returns the value of the field func_data::bbs.
00105         ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > bbs_get() const;
00106 
00107         //! The method bbs_set sets the field func_data::bbs to the given value.
00108         void bbs_set(const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > & );
00109 
00110         //! The method alloc_ints_get returns the value of the field func_data::alloc_ints.
00111         ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > alloc_ints_get() const;
00112 
00113         //! The method alloc_ints_set sets the field func_data::alloc_ints to the given value.
00114         void alloc_ints_set(const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > & );
00115 
00116         
00117         //! First generated factory method for class func_data.
00118         static ptr< func_data > create (
00119                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__func_data__function_decl,
00120                 ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > a__func_data__pi_body,
00121                 ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__func_data__ge_body,
00122                 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > a__func_data__bbs,
00123                 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > a__func_data__alloc_ints);
00124 
00125         //! Second generated factory method for class func_data.
00126         static ptr< func_data > create (
00127                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__func_data__function_decl);
00128 
00129         
00130 
00131         //! for purposes of dumping
00132         virtual ptr<reflection_list> reflection_get() const;
00133         //! for purposes of dumping
00134         virtual ptr<field_list_list> field_values_get() const;
00135         
00136 protected:
00137         //! Generated constructor for class func_data.
00138         func_data (
00139                 ptr< ::lestes::lang::cplus::sem::ss_function_declaration > a__func_data__function_decl,
00140                 ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > > a__func_data__pi_body,
00141                 ptr< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__func_data__ge_body,
00142                 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > > a__func_data__bbs,
00143                 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > > a__func_data__alloc_ints);
00144 
00145         //! Marking routine for class func_data. 
00146         virtual void gc_mark();
00147 
00148 private:
00149         //! Ss-declaration of the function.
00150         srp< ::lestes::lang::cplus::sem::ss_function_declaration > function_decl;
00151         //! A list of pi-level pseudoinstructions of the function's body.
00152         srp< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::pi_pi > > >  pi_body;
00153         //! A list of ge-level pseudoinstruction of the function's body.
00154         srp< ::lestes::std::list< srp< ::lestes::backend_v2::intercode::ge_pi > > >  ge_body;
00155         //! A list of basic blocks.
00156         srp< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::basic_block > > >  bbs;
00157         //! A list of intervals used by register allocation a spill-code generation.
00158         srp< ::lestes::std::vector< srp< ::lestes::backend_v2::workers::alloc_interval > > >  alloc_ints;
00159         static ptr<reflection_list> reflection;
00160         
00161 }; // func_data
00162 
00163 
00164 end_package(structs);
00165 end_package(backend_v2);
00166 end_package(lestes);
00167 
00168 #endif // lestes__backend_v2__structs__func_data_g_hh__included

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