Mercurial > hg > truffle
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(); |