Some virtual methods in the allocation path[*] are no longer overridden by any GC, so we can make them non-virtual until such a need arise again. Keeping CollectedHeap::array_allocate() virtual because ZGC still wants to override that path (as part of JDK-8227226, which is currently out for review).
*) CollectedHeap::obj_allocate(), CollectedHeap::class_allocate() and MemAllocator::mem_allocate()
*) CollectedHeap::obj_allocate(), CollectedHeap::class_allocate() and MemAllocator::mem_allocate()