src/share/vm/opto/macro.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File 8086053-search Cdiff src/share/vm/opto/macro.cpp

src/share/vm/opto/macro.cpp

Print this page

        

*** 1811,1824 **** // trap, and may be placed in a different (outer) loop, if the Allocate // is in a loop. If (this is rare) the inner loop gets unrolled, then // there can be two Allocates to one Initialize. The answer in all these // edge cases is safety first. It is always safe to clear immediately // within an Allocate, and then (maybe or maybe not) clear some more later. ! if (!ZeroTLAB) rawmem = ClearArrayNode::clear_memory(control, rawmem, object, header_size, size_in_bytes, &_igvn); } else { if (!init->is_complete()) { // Try to win by zeroing only what the init does not store. // We can also try to do some peephole optimizations, // such as combining some adjacent subword stores. --- 1811,1825 ---- // trap, and may be placed in a different (outer) loop, if the Allocate // is in a loop. If (this is rare) the inner loop gets unrolled, then // there can be two Allocates to one Initialize. The answer in all these // edge cases is safety first. It is always safe to clear immediately // within an Allocate, and then (maybe or maybe not) clear some more later. ! if (!(UseTLAB && ZeroTLAB)) { rawmem = ClearArrayNode::clear_memory(control, rawmem, object, header_size, size_in_bytes, &_igvn); + } } else { if (!init->is_complete()) { // Try to win by zeroing only what the init does not store. // We can also try to do some peephole optimizations, // such as combining some adjacent subword stores.
src/share/vm/opto/macro.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File