< prev index next >

src/hotspot/share/code/vtableStubs.cpp

Print this page

 85   st->print("vtable stub (index = %d, receiver_location = " INTX_FORMAT ", code = [" INTPTR_FORMAT ", " INTPTR_FORMAT "])",
 86              index(), p2i(receiver_location()), p2i(code_begin()), p2i(code_end()));
 87 }
 88 
 89 void VtableStub::print() const { print_on(tty); }
 90 
 91 // -----------------------------------------------------------------------------------------
 92 // Implementation of VtableStubs
 93 //
 94 // For each hash value there's a linked list of vtable stubs (with that
 95 // hash value). Each list is anchored in a little hash _table, indexed
 96 // by that hash value.
 97 
 98 VtableStub* VtableStubs::_table[VtableStubs::N];
 99 int VtableStubs::_number_of_vtable_stubs = 0;
100 int VtableStubs::_vtab_stub_size = 0;
101 int VtableStubs::_itab_stub_size = 0;
102 
103 #if defined(PRODUCT)
104   // These values are good for the PRODUCT case (no tracing).
105   static const int first_vtableStub_size =  64;
106   static const int first_itableStub_size = 256;
107 #else
108   // These values are good for the non-PRODUCT case (when tracing can be switched on).
109   // To find out, run test workload with
110   //   -Xlog:vtablestubs=Trace -XX:+CountCompiledCalls -XX:+DebugVtables
111   // and use the reported "estimate" value.
112   // Here is a list of observed worst-case values:
113   //               vtable  itable
114   // aarch64:         460     324
115   // arm:               ?       ?
116   // ppc (linux, BE): 404     288
117   // ppc (linux, LE): 356     276
118   // ppc (AIX):       416     296
119   // s390x:           408     256
120   // Solaris-sparc:   792     348
121   // x86 (Linux):     670     309
122   // x86 (MacOS):     682     321
123   static const int first_vtableStub_size = 1024;
124   static const int first_itableStub_size =  512;
125 #endif
126 

 85   st->print("vtable stub (index = %d, receiver_location = " INTX_FORMAT ", code = [" INTPTR_FORMAT ", " INTPTR_FORMAT "])",
 86              index(), p2i(receiver_location()), p2i(code_begin()), p2i(code_end()));
 87 }
 88 
 89 void VtableStub::print() const { print_on(tty); }
 90 
 91 // -----------------------------------------------------------------------------------------
 92 // Implementation of VtableStubs
 93 //
 94 // For each hash value there's a linked list of vtable stubs (with that
 95 // hash value). Each list is anchored in a little hash _table, indexed
 96 // by that hash value.
 97 
 98 VtableStub* VtableStubs::_table[VtableStubs::N];
 99 int VtableStubs::_number_of_vtable_stubs = 0;
100 int VtableStubs::_vtab_stub_size = 0;
101 int VtableStubs::_itab_stub_size = 0;
102 
103 #if defined(PRODUCT)
104   // These values are good for the PRODUCT case (no tracing).
105   static const int first_vtableStub_size = 256;
106   static const int first_itableStub_size = 512;
107 #else
108   // These values are good for the non-PRODUCT case (when tracing can be switched on).
109   // To find out, run test workload with
110   //   -Xlog:vtablestubs=Trace -XX:+CountCompiledCalls -XX:+DebugVtables
111   // and use the reported "estimate" value.
112   // Here is a list of observed worst-case values:
113   //               vtable  itable
114   // aarch64:         460     324
115   // arm:               ?       ?
116   // ppc (linux, BE): 404     288
117   // ppc (linux, LE): 356     276
118   // ppc (AIX):       416     296
119   // s390x:           408     256
120   // Solaris-sparc:   792     348
121   // x86 (Linux):     670     309
122   // x86 (MacOS):     682     321
123   static const int first_vtableStub_size = 1024;
124   static const int first_itableStub_size =  512;
125 #endif
126 
< prev index next >