--- old/src/share/vm/opto/macro.cpp 2016-01-11 14:04:05.986066546 +0100 +++ new/src/share/vm/opto/macro.cpp 2016-01-11 14:04:05.910066549 +0100 @@ -1813,10 +1813,11 @@ // 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) + 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.