00001
00002
00003
00004
00005
00006
00007
00008 #include <lestes/backend_v2/structs/func_data.g.hh>
00009 #include <lestes/backend_v2/intercode/ge.g.hh>
00010 #include <lestes/backend_v2/intercode/pi_mem_factory.g.hh>
00011 #include <lestes/backend_v2/workers/liveness_analysis.g.hh>
00012 #include <lestes/md/registers/tm_register.g.hh>
00013
00014 #include <lestes/std/list.hh>
00015 #include <lestes/std/pair.hh>
00016 #include <lestes/std/reflect.hh>
00017
00018 #include <lestes/backend_v2/workers/alloc_int_finder.g.hh>
00019
00020 package(lestes);
00021 package(backend_v2);
00022 package(workers);
00023
00024
00025
00026
00027
00028
00029
00030
00031 ptr< alloc_int_finder > alloc_int_finder::create(ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data)
00032 {
00033 return ptr< alloc_int_finder > ( new alloc_int_finder(a__worker_base__data) );
00034 }
00035
00036
00037
00038
00039
00040 alloc_int_finder::alloc_int_finder (ptr< ::lestes::backend_v2::structs::func_data > a__worker_base__data)
00041 : worker_base(a__worker_base__data)
00042 {}
00043
00044 ptr< object::reflection_list > alloc_int_finder::reflection_get() const
00045 {
00046 if (!reflection) {
00047 typedef class_reflection::field_metadata md;
00048 typedef class_reflection::field_metadata_list mdlist;
00049 ptr<mdlist> mdl = mdlist::create();
00050 reflection = reflection_list::create( worker_base::reflection_get() );
00051 reflection->push_back( class_reflection::create( "alloc_int_finder", mdl ) );
00052 }
00053 return reflection;
00054 }
00055
00056 ptr< object::field_list_list > alloc_int_finder::field_values_get() const
00057 {
00058 ptr < field_list_list > result = worker_base::field_values_get();
00059 return result;
00060 }
00061
00062
00063
00064
00065
00066
00067 void alloc_int_finder::gc_mark()
00068 {
00069 worker_base::gc_mark();
00070 }
00071
00072
00073
00074
00075
00076
00077
00078
00079
00080 ptr< ::lestes::backend_v2::intercode::ge_operand_reg > alloc_interval::operand_get() const
00081 {
00082 return operand;
00083 }
00084
00085
00086
00087
00088
00089 void alloc_interval::operand_set(const ptr< ::lestes::backend_v2::intercode::ge_operand_reg > & x)
00090 {
00091 alloc_interval::operand = x;
00092 }
00093
00094
00095
00096
00097
00098 ptr< ::lestes::backend_v2::workers::liveness_range > alloc_interval::rng_get() const
00099 {
00100 return rng;
00101 }
00102
00103
00104
00105
00106
00107 void alloc_interval::rng_set(const ptr< ::lestes::backend_v2::workers::liveness_range > & x)
00108 {
00109 alloc_interval::rng = x;
00110 }
00111
00112
00113
00114
00115
00116 ptr< alloc_interval > alloc_interval::prev_get() const
00117 {
00118 return prev;
00119 }
00120
00121
00122
00123
00124
00125 void alloc_interval::prev_set(const ptr< alloc_interval > & x)
00126 {
00127 alloc_interval::prev = x;
00128 }
00129
00130
00131
00132
00133
00134 ptr< alloc_interval > alloc_interval::next_get() const
00135 {
00136 return next;
00137 }
00138
00139
00140
00141
00142
00143 void alloc_interval::next_set(const ptr< alloc_interval > & x)
00144 {
00145 alloc_interval::next = x;
00146 }
00147
00148
00149
00150
00151
00152 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > alloc_interval::allocated_spill_place_get() const
00153 {
00154 return allocated_spill_place;
00155 }
00156
00157
00158
00159
00160
00161 void alloc_interval::allocated_spill_place_set(const ptr< ::lestes::backend_v2::intercode::pi_mem_factory > & x)
00162 {
00163 alloc_interval::allocated_spill_place = x;
00164 }
00165
00166
00167
00168
00169
00170 ptr< ::lestes::md::registers::tm_register > alloc_interval::allocated_reg_get() const
00171 {
00172 return allocated_reg;
00173 }
00174
00175
00176
00177
00178
00179 void alloc_interval::allocated_reg_set(const ptr< ::lestes::md::registers::tm_register > & x)
00180 {
00181 alloc_interval::allocated_reg = x;
00182 }
00183
00184
00185
00186
00187
00188 ptr< alloc_interval > alloc_interval::allocated_obj_prev_owner_get() const
00189 {
00190 return allocated_obj_prev_owner;
00191 }
00192
00193
00194
00195
00196
00197 void alloc_interval::allocated_obj_prev_owner_set(const ptr< alloc_interval > & x)
00198 {
00199 alloc_interval::allocated_obj_prev_owner = x;
00200 }
00201
00202
00203
00204
00205
00206 ulint alloc_interval::start_get() const
00207 {
00208 return start;
00209 }
00210
00211
00212
00213
00214
00215 void alloc_interval::start_set(ulint x)
00216 {
00217 alloc_interval::start = x;
00218 }
00219
00220
00221
00222
00223
00224 ulint alloc_interval::end_get() const
00225 {
00226 return end;
00227 }
00228
00229
00230
00231
00232
00233 void alloc_interval::end_set(ulint x)
00234 {
00235 alloc_interval::end = x;
00236 }
00237
00238
00239
00240
00241
00242 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > alloc_interval::instructions_get() const
00243 {
00244 return instructions;
00245 }
00246
00247
00248
00249
00250
00251 void alloc_interval::instructions_set(const ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > & x)
00252 {
00253 alloc_interval::instructions = x;
00254 }
00255
00256
00257
00258
00259
00260 ptr< ::lestes::std::set< ulint > > alloc_interval::allowed_registers_get() const
00261 {
00262 return allowed_registers;
00263 }
00264
00265
00266
00267
00268
00269 void alloc_interval::allowed_registers_set(const ptr< ::lestes::std::set< ulint > > & x)
00270 {
00271 alloc_interval::allowed_registers = x;
00272 }
00273
00274
00275
00276
00277
00278 ptr< alloc_interval > alloc_interval::create(ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__alloc_interval__operand,
00279 ptr< ::lestes::backend_v2::workers::liveness_range > a__alloc_interval__rng,
00280 ptr< alloc_interval > a__alloc_interval__prev,
00281 ptr< alloc_interval > a__alloc_interval__next,
00282 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__alloc_interval__allocated_spill_place,
00283 ptr< ::lestes::md::registers::tm_register > a__alloc_interval__allocated_reg,
00284 ptr< alloc_interval > a__alloc_interval__allocated_obj_prev_owner,
00285 ulint a__alloc_interval__start,
00286 ulint a__alloc_interval__end,
00287 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__alloc_interval__instructions,
00288 ptr< ::lestes::std::set< ulint > > a__alloc_interval__allowed_registers)
00289 {
00290 return ptr< alloc_interval > ( new alloc_interval(a__alloc_interval__operand,
00291 a__alloc_interval__rng,
00292 a__alloc_interval__prev,
00293 a__alloc_interval__next,
00294 a__alloc_interval__allocated_spill_place,
00295 a__alloc_interval__allocated_reg,
00296 a__alloc_interval__allocated_obj_prev_owner,
00297 a__alloc_interval__start,
00298 a__alloc_interval__end,
00299 a__alloc_interval__instructions,
00300 a__alloc_interval__allowed_registers) );
00301 }
00302
00303
00304
00305
00306
00307 ptr< alloc_interval > alloc_interval::create(ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__alloc_interval__operand,
00308 ptr< ::lestes::backend_v2::workers::liveness_range > a__alloc_interval__rng)
00309 {
00310 return ptr< alloc_interval > ( new alloc_interval(a__alloc_interval__operand, a__alloc_interval__rng, NULL, NULL, NULL, NULL, NULL, 0, 0, ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > ::create(), NULL) );
00311 }
00312
00313
00314
00315
00316
00317 alloc_interval::alloc_interval (ptr< ::lestes::backend_v2::intercode::ge_operand_reg > a__alloc_interval__operand,
00318 ptr< ::lestes::backend_v2::workers::liveness_range > a__alloc_interval__rng,
00319 ptr< alloc_interval > a__alloc_interval__prev,
00320 ptr< alloc_interval > a__alloc_interval__next,
00321 ptr< ::lestes::backend_v2::intercode::pi_mem_factory > a__alloc_interval__allocated_spill_place,
00322 ptr< ::lestes::md::registers::tm_register > a__alloc_interval__allocated_reg,
00323 ptr< alloc_interval > a__alloc_interval__allocated_obj_prev_owner,
00324 ulint a__alloc_interval__start,
00325 ulint a__alloc_interval__end,
00326 ptr< ::lestes::std::vector< srp< ::lestes::backend_v2::intercode::ge_pi > > > a__alloc_interval__instructions,
00327 ptr< ::lestes::std::set< ulint > > a__alloc_interval__allowed_registers)
00328 : ::lestes::std::object(), operand(checked(a__alloc_interval__operand)), rng(checked(a__alloc_interval__rng)), prev(a__alloc_interval__prev), next(a__alloc_interval__next), allocated_spill_place(a__alloc_interval__allocated_spill_place), allocated_reg(a__alloc_interval__allocated_reg), allocated_obj_prev_owner(a__alloc_interval__allocated_obj_prev_owner), start(a__alloc_interval__start), end(a__alloc_interval__end), instructions(checked(a__alloc_interval__instructions)), allowed_registers(a__alloc_interval__allowed_registers)
00329 {}
00330
00331 ptr< object::reflection_list > alloc_interval::reflection_get() const
00332 {
00333 if (!reflection) {
00334 typedef class_reflection::field_metadata md;
00335 typedef class_reflection::field_metadata_list mdlist;
00336 ptr<mdlist> mdl = mdlist::create();
00337 mdl->push_back( md::create( "operand", "ge_operand_reg" ) );
00338 mdl->push_back( md::create( "rng", "liveness_range" ) );
00339 mdl->push_back( md::create( "prev", "alloc_interval" ) );
00340 mdl->push_back( md::create( "next", "alloc_interval" ) );
00341 mdl->push_back( md::create( "allocated_spill_place", "pi_mem_factory" ) );
00342 mdl->push_back( md::create( "allocated_reg", "tm_register" ) );
00343 mdl->push_back( md::create( "allocated_obj_prev_owner", "alloc_interval" ) );
00344 mdl->push_back( md::create( "start", "ulint" ) );
00345 mdl->push_back( md::create( "end", "ulint" ) );
00346 mdl->push_back( md::create( "instructions", "vector< srp< ::lestes::backend_v2::intercode::ge_pi > >" ) );
00347 mdl->push_back( md::create( "allowed_registers", "set< ulint >" ) );
00348 reflection = reflection_list::create( ::lestes::std::object::reflection_get() );
00349 reflection->push_back( class_reflection::create( "alloc_interval", mdl ) );
00350 }
00351 return reflection;
00352 }
00353
00354 ptr< object::field_list_list > alloc_interval::field_values_get() const
00355 {
00356 ptr < field_list_list > result = ::lestes::std::object::field_values_get();
00357 result->push_back( value_list::create() );
00358 result->back()->push_back( this->operand );
00359 result->push_back( value_list::create() );
00360 result->back()->push_back( this->rng );
00361 result->push_back( value_list::create() );
00362 result->back()->push_back( this->prev );
00363 result->push_back( value_list::create() );
00364 result->back()->push_back( this->next );
00365 result->push_back( value_list::create() );
00366 result->back()->push_back( this->allocated_spill_place );
00367 result->push_back( value_list::create() );
00368 result->back()->push_back( this->allocated_reg );
00369 result->push_back( value_list::create() );
00370 result->back()->push_back( this->allocated_obj_prev_owner );
00371 result->push_back( value_list::create() );
00372 result->back()->push_back( objectize< ulint > ::create( this->start ) );
00373 result->push_back( value_list::create() );
00374 result->back()->push_back( objectize< ulint > ::create( this->end ) );
00375 result->push_back( value_list::create() );
00376 result->back()->push_back( this->instructions );
00377 result->push_back( value_list::create() );
00378 result->back()->push_back( this->allowed_registers );
00379 return result;
00380 }
00381
00382
00383
00384
00385
00386
00387 void alloc_interval::gc_mark()
00388 {
00389 ::lestes::std::object::gc_mark();
00390 }
00391
00392
00393
00394
00395
00396 ptr<object::reflection_list> alloc_int_finder::reflection = reflection;
00397 ptr<object::reflection_list> alloc_interval::reflection = reflection;
00398
00399 end_package(workers);
00400 end_package(backend_v2);
00401 end_package(lestes);
00402