simple_spillgen.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__simple_spillgen_g_hh__included
00009 #define lestes__backend_v2__workers__simple_spillgen_g_hh__included
00010 
00011 #include <lestes/std/list.hh>
00012 #include <lestes/std/set.hh>
00013 #include <lestes/backend_v2/common.hh>
00014 #include <lestes/backend_v2/workers/worker_base.g.hh>
00015 
00016 #include <lestes/std/objectize_macros.hh>
00017 package(lestes);
00018 package(backend_v2);
00019 package(structs);
00020 class func_data;
00021 end_package(structs);
00022 end_package(backend_v2);
00023 end_package(lestes);
00024 
00025 package(lestes);
00026 package(backend_v2);
00027 package(intercode);
00028 class pi_mem_factory;
00029 end_package(intercode);
00030 end_package(backend_v2);
00031 end_package(lestes);
00032 
00033 package(lestes);
00034 package(md);
00035 package(registers);
00036 class tm_register;
00037 end_package(registers);
00038 end_package(md);
00039 end_package(lestes);
00040 
00041 package(lestes);
00042 package(md);
00043 package(types);
00044 class tm_data_type_base;
00045 end_package(types);
00046 end_package(md);
00047 end_package(lestes);
00048 
00049 package(lestes);
00050 package(backend_v2);
00051 package(workers);
00052 
00053 
00054 class simple_spillgen;
00055 
00056 
00057 /*! \brief Performs second pass spill-code generation.
00058 
00059 It generates spill-code for register operands generated by the first pass of spill-code generation.
00060 */
00061 class simple_spillgen : public worker_base {
00062 public:
00063         void process();
00064 
00065         ptr< ::lestes::backend_v2::structs::func_data > get_result();
00066 
00067         ptr< ::lestes::backend_v2::intercode::pi_mem_factory > get_free_spill_place(ptr<list<srp< ::lestes::backend_v2::intercode::pi_mem_factory> > > mfs, ptr< ::lestes::md::types::tm_data_type_base > type);
00068 
00069         ptr< ::lestes::md::registers::tm_register > pick_reg_by_data_type(ptr<set<ulint> > reg_set, ulint type_id);
00070 
00071         void set_instruction_property(ptr<vector<srp< ::lestes::backend_v2::intercode::ge_pi > > > instrs, ulint property_id, lstring property_value);
00072 
00073         
00074         //! First generated factory method for class simple_spillgen.
00075         static ptr< simple_spillgen > create (
00076                 ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data);
00077 
00078         
00079 
00080         //! for purposes of dumping
00081         virtual ptr<reflection_list> reflection_get() const;
00082         //! for purposes of dumping
00083         virtual ptr<field_list_list> field_values_get() const;
00084         
00085 protected:
00086         //! Generated constructor for class simple_spillgen.
00087         simple_spillgen (
00088                 ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data);
00089 
00090         //! Marking routine for class simple_spillgen. 
00091         virtual void gc_mark();
00092 
00093 private:
00094         static ptr<reflection_list> reflection;
00095         
00096 }; // simple_spillgen
00097 
00098 
00099 end_package(workers);
00100 end_package(backend_v2);
00101 end_package(lestes);
00102 
00103 #endif // lestes__backend_v2__workers__simple_spillgen_g_hh__included

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