Currently when we allocate objects into survivor regions during GC we actually update the BOT even though we don't need to (we'll never have to scan cards on survivor regions so we won't need to do BOT look-ups for those regions). Additionally, we dirty the cards on the survivor regions as an extra pass at the end of the GC.
We should improve the above by:
a) Avoid BOT updates for survivor regions (like we do for mutator allocations), and
b) Dirty the cards on survivor regions incrementally, upon every allocation (like, again, we do for mutator allocations)
We now have a G1AllocRegion abstraction in G1 (pushed as part of 7023151) that we use for mutator allocation regions. We should re-use it for GC allocation regions too given that we currently have a lot of code replication.