--- old/src/share/vm/opto/macro.cpp 2016-01-11 14:39:02.781968809 +0100 +++ new/src/share/vm/opto/macro.cpp 2016-01-11 14:39:02.701968813 +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.