liveness_analysis.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__liveness_analysis_g_hh__included
00009 #define lestes__backend_v2__workers__liveness_analysis_g_hh__included
00010 
00011 #include <lestes/std/set.hh>
00012 #include <lestes/std/map.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(backend_v2);
00024 package(structs);
00025 class func_data;
00026 end_package(structs);
00027 end_package(backend_v2);
00028 end_package(lestes);
00029 
00030 package(lestes);
00031 package(backend_v2);
00032 package(intercode);
00033 class ge_operand;
00034 end_package(intercode);
00035 end_package(backend_v2);
00036 end_package(lestes);
00037 
00038 package(lestes);
00039 package(backend_v2);
00040 package(intercode);
00041 class ge_operand_reg;
00042 end_package(intercode);
00043 end_package(backend_v2);
00044 end_package(lestes);
00045 
00046 package(lestes);
00047 package(backend_v2);
00048 package(intercode);
00049 class ge_pi;
00050 end_package(intercode);
00051 end_package(backend_v2);
00052 end_package(lestes);
00053 
00054 package(lestes);
00055 package(backend_v2);
00056 package(workers);
00057 
00058 
00059 class liveness_analysis;
00060 class liveness_range;
00061 
00062 
00063 //! Performs liveness analysis of instruction operands.
00064 class liveness_analysis : public ::lestes::std::object {
00065 public:
00066         //! The method data_get returns the value of the field liveness_analysis::data.
00067         ptr< ::lestes::backend_v2::structs::func_data > data_get() const;
00068 
00069         //! The method data_set sets the field liveness_analysis::data to the given value.
00070         void data_set(const ptr< ::lestes::backend_v2::structs::func_data > &);
00071 
00072         //! The method inout_get returns the value of the field liveness_analysis::inout.
00073         ptr< ::lestes::std::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 > > > > > > > inout_get() const;
00074 
00075         //! The method inout_set sets the field liveness_analysis::inout to the given value.
00076         void inout_set(const ptr< ::lestes::std::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 > > > > > > > & );
00077 
00078         void process();
00079 
00080         ptr<vector<srp<liveness_range> > > get_result();
00081 
00082         ptr< ::lestes::backend_v2::intercode::ge_operand_reg > extract_reg_operand(ptr< ::lestes::backend_v2::intercode::ge_operand > op);
00083 
00084         
00085         //! First generated factory method for class liveness_analysis.
00086         static ptr< liveness_analysis > create (
00087                 ptr< ::lestes::backend_v2::structs::func_data > a__liveness_analysis__data,
00088                 ptr< ::lestes::std::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 > > > > > > > a__liveness_analysis__inout);
00089 
00090         //! Second generated factory method for class liveness_analysis.
00091         static ptr< liveness_analysis > create (
00092                 ptr< ::lestes::backend_v2::structs::func_data > a__liveness_analysis__data);
00093 
00094         
00095 
00096         //! for purposes of dumping
00097         virtual ptr<reflection_list> reflection_get() const;
00098         //! for purposes of dumping
00099         virtual ptr<field_list_list> field_values_get() const;
00100         
00101 protected:
00102         //! Generated constructor for class liveness_analysis.
00103         liveness_analysis (
00104                 ptr< ::lestes::backend_v2::structs::func_data > a__liveness_analysis__data,
00105                 ptr< ::lestes::std::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 > > > > > > > a__liveness_analysis__inout);
00106 
00107         //! Marking routine for class liveness_analysis. 
00108         virtual void gc_mark();
00109 
00110 private:
00111         srp< ::lestes::backend_v2::structs::func_data > data;
00112         //! Holds a pseudoinstruction to inout set map.
00113         srp< ::lestes::std::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 > > > > > > >  inout;
00114         static ptr<reflection_list> reflection;
00115         
00116 }; // liveness_analysis
00117 
00118 
00119 //! Represents liverange of an operand.
00120 class liveness_range : public ::lestes::std::object {
00121 public:
00122         //! The method operand_get returns the value of the field liveness_range::operand.
00123         ptr< ::lestes::backend_v2::intercode::ge_operand_reg > operand_get() const;
00124 
00125         //! The method operand_set sets the field liveness_range::operand to the given value.
00126         void operand_set(const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > &);
00127 
00128         //! The method instructions_get returns the value of the field liveness_range::instructions.
00129         ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > instructions_get() const;
00130 
00131         //! The method instructions_set sets the field liveness_range::instructions to the given value.
00132         void instructions_set(const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > & );
00133 
00134         //! The method start_get returns the value of the field liveness_range::start.
00135         ulint start_get() const;
00136 
00137         //! The method start_set sets the field liveness_range::start to the given value.
00138         void start_set(ulint);
00139 
00140         //! The method end_get returns the value of the field liveness_range::end.
00141         ulint end_get() const;
00142 
00143         //! The method end_set sets the field liveness_range::end to the given value.
00144         void end_set(ulint);
00145 
00146         
00147         //! First generated factory method for class liveness_range.
00148         static ptr< liveness_range > create (
00149                 ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__liveness_range__operand,
00150                 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__liveness_range__instructions,
00151                 ulint a__liveness_range__start,
00152                 ulint a__liveness_range__end);
00153 
00154         //! Second generated factory method for class liveness_range.
00155         static ptr< liveness_range > create (
00156                 ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__liveness_range__operand,
00157                 ulint a__liveness_range__start,
00158                 ulint a__liveness_range__end);
00159 
00160         
00161 
00162         //! for purposes of dumping
00163         virtual ptr<reflection_list> reflection_get() const;
00164         //! for purposes of dumping
00165         virtual ptr<field_list_list> field_values_get() const;
00166         
00167 protected:
00168         //! Generated constructor for class liveness_range.
00169         liveness_range (
00170                 ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__liveness_range__operand,
00171                 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__liveness_range__instructions,
00172                 ulint a__liveness_range__start,
00173                 ulint a__liveness_range__end);
00174 
00175         //! Marking routine for class liveness_range. 
00176         virtual void gc_mark();
00177 
00178 private:
00179         //! The operand.
00180         srp< ::lestes::backend_v2::intercode::ge_operand_reg > operand;
00181         //! A vector of pseudoinstruction where the operand is alive.
00182         srp< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > >  instructions;
00183         //! A schedule position of the first pseudoinstruction of the range.
00184         ulint start;
00185         //! A schedule position of the last pseudoinstruction of the range.
00186         ulint end;
00187         static ptr<reflection_list> reflection;
00188         
00189 }; // liveness_range
00190 
00191 
00192 end_package(workers);
00193 end_package(backend_v2);
00194 end_package(lestes);
00195 
00196 #endif // lestes__backend_v2__workers__liveness_analysis_g_hh__included

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