diff -r b186322970f4 -r c75f3cdeb48c src/hotspot/share/oops/methodData.hpp --- a/src/hotspot/share/oops/methodData.hpp Thu May 31 13:25:40 2018 +0200 +++ b/src/hotspot/share/oops/methodData.hpp Thu May 31 09:19:54 2018 -0400 @@ -232,11 +232,6 @@ static ByteSize cell_offset(int index) { return byte_offset_of(DataLayout, _cells) + in_ByteSize(index * cell_size); } -#ifdef CC_INTERP - static int cell_offset_in_bytes(int index) { - return (int)offset_of(DataLayout, _cells[index]); - } -#endif // CC_INTERP // Return a value which, when or-ed as a byte into _flags, sets the flag. static int flag_number_to_byte_constant(int flag_number) { assert(0 <= flag_number && flag_number < flag_limit, "oob"); @@ -372,41 +367,6 @@ _data = data; } -#ifdef CC_INTERP - // Static low level accessors for DataLayout with ProfileData's semantics. - - static int cell_offset_in_bytes(int index) { - return DataLayout::cell_offset_in_bytes(index); - } - - static void increment_uint_at_no_overflow(DataLayout* layout, int index, - int inc = DataLayout::counter_increment) { - uint count = ((uint)layout->cell_at(index)) + inc; - if (count == 0) return; - layout->set_cell_at(index, (intptr_t) count); - } - - static int int_at(DataLayout* layout, int index) { - return (int)layout->cell_at(index); - } - - static int uint_at(DataLayout* layout, int index) { - return (uint)layout->cell_at(index); - } - - static oop oop_at(DataLayout* layout, int index) { - return cast_to_oop(layout->cell_at(index)); - } - - static void set_intptr_at(DataLayout* layout, int index, intptr_t value) { - layout->set_cell_at(index, (intptr_t) value); - } - - static void set_flag_at(DataLayout* layout, int flag_number) { - layout->set_flag_at(flag_number); - } -#endif // CC_INTERP - public: // Constructor for invalid ProfileData. ProfileData(); @@ -581,20 +541,6 @@ return cell_offset(bit_cell_count); } -#ifdef CC_INTERP - static int bit_data_size_in_bytes() { - return cell_offset_in_bytes(bit_cell_count); - } - - static void set_null_seen(DataLayout* layout) { - set_flag_at(layout, null_seen_flag); - } - - static DataLayout* advance(DataLayout* layout) { - return (DataLayout*) (((address)layout) + (ssize_t)BitData::bit_data_size_in_bytes()); - } -#endif // CC_INTERP - void print_data_on(outputStream* st, const char* extra = NULL) const; }; @@ -639,25 +585,6 @@ set_uint_at(count_off, count); } -#ifdef CC_INTERP - static int counter_data_size_in_bytes() { - return cell_offset_in_bytes(counter_cell_count); - } - - static void increment_count_no_overflow(DataLayout* layout) { - increment_uint_at_no_overflow(layout, count_off); - } - - // Support counter decrementation at checkcast / subtype check failed. - static void decrement_count(DataLayout* layout) { - increment_uint_at_no_overflow(layout, count_off, -1); - } - - static DataLayout* advance(DataLayout* layout) { - return (DataLayout*) (((address)layout) + (ssize_t)CounterData::counter_data_size_in_bytes()); - } -#endif // CC_INTERP - void print_data_on(outputStream* st, const char* extra = NULL) const; }; @@ -728,20 +655,6 @@ return cell_offset(displacement_off_set); } -#ifdef CC_INTERP - static void increment_taken_count_no_overflow(DataLayout* layout) { - increment_uint_at_no_overflow(layout, taken_off_set); - } - - static DataLayout* advance_taken(DataLayout* layout) { - return (DataLayout*) (((address)layout) + (ssize_t)int_at(layout, displacement_off_set)); - } - - static uint taken_count(DataLayout* layout) { - return (uint) uint_at(layout, taken_off_set); - } -#endif // CC_INTERP - // Specific initialization. void post_initialize(BytecodeStream* stream, MethodData* mdo); @@ -1302,43 +1215,6 @@ // GC support virtual void clean_weak_klass_links(bool always_clean); -#ifdef CC_INTERP - static int receiver_type_data_size_in_bytes() { - return cell_offset_in_bytes(static_cell_count()); - } - - static Klass *receiver_unchecked(DataLayout* layout, uint row) { - Klass* recv = (Klass*)layout->cell_at(receiver_cell_index(row)); - return recv; - } - - static void increment_receiver_count_no_overflow(DataLayout* layout, Klass *rcvr) { - const int num_rows = row_limit(); - // Receiver already exists? - for (int row = 0; row < num_rows; row++) { - if (receiver_unchecked(layout, row) == rcvr) { - increment_uint_at_no_overflow(layout, receiver_count_cell_index(row)); - return; - } - } - // New receiver, find a free slot. - for (int row = 0; row < num_rows; row++) { - if (receiver_unchecked(layout, row) == NULL) { - set_intptr_at(layout, receiver_cell_index(row), (intptr_t)rcvr); - increment_uint_at_no_overflow(layout, receiver_count_cell_index(row)); - return; - } - } - // Receiver did not match any saved receiver and there is no empty row for it. - // Increment total counter to indicate polymorphic case. - increment_count_no_overflow(layout); - } - - static DataLayout* advance(DataLayout* layout) { - return (DataLayout*) (((address)layout) + (ssize_t)ReceiverTypeData::receiver_type_data_size_in_bytes()); - } -#endif // CC_INTERP - void print_receiver_data_on(outputStream* st) const; void print_data_on(outputStream* st, const char* extra = NULL) const; }; @@ -1371,16 +1247,6 @@ return cell_offset(static_cell_count()); } -#ifdef CC_INTERP - static int virtual_call_data_size_in_bytes() { - return cell_offset_in_bytes(static_cell_count()); - } - - static DataLayout* advance(DataLayout* layout) { - return (DataLayout*) (((address)layout) + (ssize_t)VirtualCallData::virtual_call_data_size_in_bytes()); - } -#endif // CC_INTERP - #if INCLUDE_JVMCI static ByteSize method_offset(uint row) { return cell_offset(method_cell_index(row)); @@ -1658,10 +1524,6 @@ return cell_offset(bci_displacement_cell_index(row)); } -#ifdef CC_INTERP - static DataLayout* advance(MethodData *md, int bci); -#endif // CC_INTERP - // Specific initialization. void post_initialize(BytecodeStream* stream, MethodData* mdo); @@ -1726,20 +1588,6 @@ return cell_offset(branch_cell_count); } -#ifdef CC_INTERP - static int branch_data_size_in_bytes() { - return cell_offset_in_bytes(branch_cell_count); - } - - static void increment_not_taken_count_no_overflow(DataLayout* layout) { - increment_uint_at_no_overflow(layout, not_taken_off_set); - } - - static DataLayout* advance_not_taken(DataLayout* layout) { - return (DataLayout*) (((address)layout) + (ssize_t)BranchData::branch_data_size_in_bytes()); - } -#endif // CC_INTERP - // Specific initialization. void post_initialize(BytecodeStream* stream, MethodData* mdo); @@ -1779,20 +1627,6 @@ set_int_at(aindex, value); } -#ifdef CC_INTERP - // Static low level accessors for DataLayout with ArrayData's semantics. - - static void increment_array_uint_at_no_overflow(DataLayout* layout, int index) { - int aindex = index + array_start_off_set; - increment_uint_at_no_overflow(layout, aindex); - } - - static int array_int_at(DataLayout* layout, int index) { - int aindex = index + array_start_off_set; - return int_at(layout, aindex); - } -#endif // CC_INTERP - // Code generation support for subclasses. static ByteSize array_element_offset(int index) { return cell_offset(array_start_off_set + index); @@ -1913,28 +1747,6 @@ return in_ByteSize(relative_displacement_off_set) * cell_size; } -#ifdef CC_INTERP - static void increment_count_no_overflow(DataLayout* layout, int index) { - if (index == -1) { - increment_array_uint_at_no_overflow(layout, default_count_off_set); - } else { - increment_array_uint_at_no_overflow(layout, case_array_start + - index * per_case_cell_count + - relative_count_off_set); - } - } - - static DataLayout* advance(DataLayout* layout, int index) { - if (index == -1) { - return (DataLayout*) (((address)layout) + (ssize_t)array_int_at(layout, default_disaplacement_off_set)); - } else { - return (DataLayout*) (((address)layout) + (ssize_t)array_int_at(layout, case_array_start + - index * per_case_cell_count + - relative_displacement_off_set)); - } - } -#endif // CC_INTERP - // Specific initialization. void post_initialize(BytecodeStream* stream, MethodData* mdo); @@ -2127,13 +1939,11 @@ // adjusted in the event of a change in control flow. // -CC_INTERP_ONLY(class BytecodeInterpreter;) class CleanExtraDataClosure; class MethodData : public Metadata { friend class VMStructs; friend class JVMCIVMStructs; - CC_INTERP_ONLY(friend class BytecodeInterpreter;) private: friend class ProfileData; friend class TypeEntriesAtCall;