00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef lestes__backend_v2__backend_g_hh__included
00010 #define lestes__backend_v2__backend_g_hh__included
00011
00012 #include <lestes/backend_v2/common.hh>
00013
00014 #include <lestes/std/objectize_macros.hh>
00015 package(lestes);
00016 package(std);
00017 class object;
00018 end_package(std);
00019 end_package(lestes);
00020
00021 package(lestes);
00022 package(backend_v2);
00023
00024
00025 class backend;
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 class backend : public ::lestes::std::object {
00036 public:
00037
00038 ::std::ostream& output_get() const;
00039
00040
00041 bool optimization_conditional_jumps_get() const;
00042
00043
00044 void optimization_conditional_jumps_set(bool);
00045
00046
00047 bool optimization_immediate_inlining_get() const;
00048
00049
00050 void optimization_immediate_inlining_set(bool);
00051
00052
00053 bool optimization_memory_inlining_get() const;
00054
00055
00056 void optimization_memory_inlining_set(bool);
00057
00058
00059 bool optimization_deadcode_elimination_get() const;
00060
00061
00062 void optimization_deadcode_elimination_set(bool);
00063
00064
00065 bool optimization_register_allocation_get() const;
00066
00067
00068 void optimization_register_allocation_set(bool);
00069
00070
00071 bool optimization_uselesscode_elimination_get() const;
00072
00073
00074 void optimization_uselesscode_elimination_set(bool);
00075
00076
00077 bool optimization_code_scheduling_get() const;
00078
00079
00080 void optimization_code_scheduling_set(bool);
00081
00082
00083 void main();
00084
00085
00086
00087 static ptr< backend > create (
00088 ::std::ostream& a__backend__output,
00089 bool a__backend__optimization_conditional_jumps,
00090 bool a__backend__optimization_immediate_inlining,
00091 bool a__backend__optimization_memory_inlining,
00092 bool a__backend__optimization_deadcode_elimination,
00093 bool a__backend__optimization_register_allocation,
00094 bool a__backend__optimization_uselesscode_elimination,
00095 bool a__backend__optimization_code_scheduling);
00096
00097
00098 static ptr< backend > create (
00099 ::std::ostream& a__backend__output);
00100
00101
00102
00103
00104 virtual ptr<reflection_list> reflection_get() const;
00105
00106 virtual ptr<field_list_list> field_values_get() const;
00107
00108 protected:
00109
00110 backend (
00111 ::std::ostream& a__backend__output,
00112 bool a__backend__optimization_conditional_jumps,
00113 bool a__backend__optimization_immediate_inlining,
00114 bool a__backend__optimization_memory_inlining,
00115 bool a__backend__optimization_deadcode_elimination,
00116 bool a__backend__optimization_register_allocation,
00117 bool a__backend__optimization_uselesscode_elimination,
00118 bool a__backend__optimization_code_scheduling);
00119
00120
00121 virtual void gc_mark();
00122
00123 private:
00124
00125 ::std::ostream& output;
00126
00127 bool optimization_conditional_jumps;
00128
00129 bool optimization_immediate_inlining;
00130
00131 bool optimization_memory_inlining;
00132
00133 bool optimization_deadcode_elimination;
00134
00135 bool optimization_register_allocation;
00136
00137 bool optimization_uselesscode_elimination;
00138
00139 bool optimization_code_scheduling;
00140 static ptr<reflection_list> reflection;
00141
00142 };
00143
00144
00145 end_package(backend_v2);
00146 end_package(lestes);
00147
00148 #endif // lestes__backend_v2__backend_g_hh__included