comparison src/share/vm/opto/graphKit.cpp @ 63:eac007780a58

6671807: (Escape Analysis) Add new ideal node to represent the state of a scalarized object at a safepoint Summary: Values of non-static fields of a scalarized object should be saved in debug info to reallocate the object during deoptimization. Reviewed-by: never
author kvn
date Thu, 13 Mar 2008 16:06:34 -0700
parents d5fc211aea19
children 2a9af0b9cb1c
comparison
equal deleted inserted replaced
46:8b6e49187640 63:eac007780a58
855 l = in_jvms->mon_size(); 855 l = in_jvms->mon_size();
856 out_jvms->set_monoff(p); 856 out_jvms->set_monoff(p);
857 for (j = 0; j < l; j++) 857 for (j = 0; j < l; j++)
858 call->set_req(p++, in_map->in(k+j)); 858 call->set_req(p++, in_map->in(k+j));
859 859
860 // Copy any scalar object fields.
861 k = in_jvms->scloff();
862 l = in_jvms->scl_size();
863 out_jvms->set_scloff(p);
864 for (j = 0; j < l; j++)
865 call->set_req(p++, in_map->in(k+j));
866
860 // Finish the new jvms. 867 // Finish the new jvms.
861 out_jvms->set_endoff(p); 868 out_jvms->set_endoff(p);
862 869
863 assert(out_jvms->endoff() == debug_end, "fill ptr must match"); 870 assert(out_jvms->endoff() == debug_end, "fill ptr must match");
864 assert(out_jvms->depth() == in_jvms->depth(), "depth must match"); 871 assert(out_jvms->depth() == in_jvms->depth(), "depth must match");
865 assert(out_jvms->loc_size() == in_jvms->loc_size(), "size must match"); 872 assert(out_jvms->loc_size() == in_jvms->loc_size(), "size must match");
866 assert(out_jvms->mon_size() == in_jvms->mon_size(), "size must match"); 873 assert(out_jvms->mon_size() == in_jvms->mon_size(), "size must match");
874 assert(out_jvms->scl_size() == in_jvms->scl_size(), "size must match");
867 assert(out_jvms->debug_size() == in_jvms->debug_size(), "size must match"); 875 assert(out_jvms->debug_size() == in_jvms->debug_size(), "size must match");
868 876
869 // Update the two tail pointers in parallel. 877 // Update the two tail pointers in parallel.
870 out_jvms = out_jvms->caller(); 878 out_jvms = out_jvms->caller();
871 in_jvms = in_jvms->caller(); 879 in_jvms = in_jvms->caller();