Mercurial > hg > graal-compiler
comparison src/share/vm/opto/parse1.cpp @ 7206:d2f8c38e543d
Merge
author | roland |
---|---|
date | Fri, 07 Dec 2012 01:09:03 -0800 |
parents | 2aff40cb4703 |
children | 5698813d45eb |
comparison
equal
deleted
inserted
replaced
7191:816b7e5bf2ed | 7206:d2f8c38e543d |
---|---|
599 | 599 |
600 // Fix up all exiting control flow. | 600 // Fix up all exiting control flow. |
601 set_map(entry_map); | 601 set_map(entry_map); |
602 do_exits(); | 602 do_exits(); |
603 | 603 |
604 if (log) log->done("parse nodes='%d' memory='%d'", | 604 if (log) log->done("parse nodes='%d' live='%d' memory='%d'", |
605 C->unique(), C->node_arena()->used()); | 605 C->unique(), C->live_nodes(), C->node_arena()->used()); |
606 } | 606 } |
607 | 607 |
608 //---------------------------do_all_blocks------------------------------------- | 608 //---------------------------do_all_blocks------------------------------------- |
609 void Parse::do_all_blocks() { | 609 void Parse::do_all_blocks() { |
610 bool has_irreducible = flow()->has_irreducible_entry(); | 610 bool has_irreducible = flow()->has_irreducible_entry(); |
1006 } | 1006 } |
1007 | 1007 |
1008 // If this is an inlined method, we may have to do a receiver null check. | 1008 // If this is an inlined method, we may have to do a receiver null check. |
1009 if (_caller->has_method() && is_normal_parse() && !method()->is_static()) { | 1009 if (_caller->has_method() && is_normal_parse() && !method()->is_static()) { |
1010 GraphKit kit(_caller); | 1010 GraphKit kit(_caller); |
1011 kit.null_check_receiver(method()); | 1011 kit.null_check_receiver_before_call(method()); |
1012 _caller = kit.transfer_exceptions_into_jvms(); | 1012 _caller = kit.transfer_exceptions_into_jvms(); |
1013 if (kit.stopped()) { | 1013 if (kit.stopped()) { |
1014 _exits.add_exception_states_from(_caller); | 1014 _exits.add_exception_states_from(_caller); |
1015 _exits.set_jvms(_caller); | 1015 _exits.set_jvms(_caller); |
1016 return NULL; | 1016 return NULL; |
1396 NOT_PRODUCT( parse_histogram()->set_initial_state(bc()); ); | 1396 NOT_PRODUCT( parse_histogram()->set_initial_state(bc()); ); |
1397 | 1397 |
1398 #ifdef ASSERT | 1398 #ifdef ASSERT |
1399 int pre_bc_sp = sp(); | 1399 int pre_bc_sp = sp(); |
1400 int inputs, depth; | 1400 int inputs, depth; |
1401 bool have_se = !stopped() && compute_stack_effects(inputs, depth, /*for_parse*/ true); | 1401 bool have_se = !stopped() && compute_stack_effects(inputs, depth); |
1402 assert(!have_se || pre_bc_sp >= inputs, err_msg_res("have enough stack to execute this BC: pre_bc_sp=%d, inputs=%d", pre_bc_sp, inputs)); | 1402 assert(!have_se || pre_bc_sp >= inputs, err_msg_res("have enough stack to execute this BC: pre_bc_sp=%d, inputs=%d", pre_bc_sp, inputs)); |
1403 #endif //ASSERT | 1403 #endif //ASSERT |
1404 | 1404 |
1405 do_one_bytecode(); | 1405 do_one_bytecode(); |
1406 | 1406 |