The mem_allocate() method in the CollectedHeap class (and in all the GCs it has been implemented in) takes two parameteres, is_tlab and is_large_noref, that do not seem to be used.
- is_tlab : this indicates whether the allocation is for a TLAB or not. It looks as if this interface is not used anymore and it has been replaced with the explicit allocate_new_tlab() method.
- is_noref : (it's also eferred to as is_large_noref in the GenCollectedHeap) it indicates that the allocation request is for a large object that has no references. This was probably used by the Train GC which has now been removed from the HotSpot codebase and it's ignored by all other GCs. G1 does allocate large objects through a special path, but it can't take advantage of this particular parameter given that the parameter only identifies large scalar arrays, not all large arrays.
I should also point out that, while working on 6974966, I did fair amount of testing asserting !is_tlab in the mem_allocate() method with no failures encountered.