Mercurial > hg > truffle
diff src/share/vm/oops/methodData.cpp @ 8883:b9a918201d47
Merge with hsx25
author | Gilles Duboscq <duboscq@ssw.jku.at> |
---|---|
date | Sat, 06 Apr 2013 20:04:06 +0200 |
parents | d343737786fe 46f6f063b272 |
children | 89e4d67fdd2a |
line wrap: on
line diff
--- a/src/share/vm/oops/methodData.cpp Fri Apr 05 18:53:57 2013 +0200 +++ b/src/share/vm/oops/methodData.cpp Sat Apr 06 20:04:06 2013 +0200 @@ -392,6 +392,9 @@ } int MethodData::bytecode_cell_count(Bytecodes::Code code) { +#if defined(COMPILER1) && !(defined(COMPILER2) || defined(GRAAL)) + return no_profile_data; +#else switch (code) { case Bytecodes::_checkcast: case Bytecodes::_instanceof: @@ -438,6 +441,7 @@ return variable_cell_count; } return no_profile_data; +#endif } // Compute the size of the profiling information corresponding to @@ -521,6 +525,9 @@ // the segment in bytes. int MethodData::initialize_data(BytecodeStream* stream, int data_index) { +#if defined(COMPILER1) && !(defined(COMPILER2) || defined(GRAAL)) + return 0; +#else int cell_count = -1; int tag = DataLayout::no_tag; DataLayout* data_layout = data_layout_at(data_index); @@ -599,6 +606,7 @@ assert(!bytecode_has_profile(c), "agree w/ !BHP"); return 0; } +#endif } // Get the data at an arbitrary (sort of) data index. @@ -668,23 +676,25 @@ No_Safepoint_Verifier no_safepoint; // init function atomic wrt GC ResourceMark rm; - if (TieredCompilation) { - _invocation_counter.init(); - _backedge_counter.init(); - _invocation_counter_start = 0; - _backedge_counter_start = 0; - _num_loops = 0; - _num_blocks = 0; - _highest_comp_level = 0; - _highest_osr_comp_level = 0; - _would_profile = true; - } + _invocation_counter.init(); + _backedge_counter.init(); + _invocation_counter_start = 0; + _backedge_counter_start = 0; + _num_loops = 0; + _num_blocks = 0; + _highest_comp_level = 0; + _highest_osr_comp_level = 0; + _would_profile = true; set_creation_mileage(mileage_of(method())); // Initialize flags and trap history. _nof_decompiles = 0; _nof_overflow_recompiles = 0; _nof_overflow_traps = 0; + _eflags = 0; + _arg_local = 0; + _arg_stack = 0; + _arg_returned = 0; assert(sizeof(_trap_hist) % sizeof(HeapWord) == 0, "align"); Copy::zero_to_words((HeapWord*) &_trap_hist, sizeof(_trap_hist) / sizeof(HeapWord)); @@ -693,6 +703,7 @@ // corresponding data cells. int data_size = 0; int empty_bc_count = 0; // number of bytecodes lacking data + _data[0] = 0; // apparently not set below. BytecodeStream stream(method()); Bytecodes::Code c; while ((c = stream.next()) >= 0) { @@ -732,6 +743,7 @@ post_initialize(&stream); set_size(object_size); + } bool MethodData::is_empty_data(int size_in_bytes, Bytecodes::Code code) {