On 64-bit systems with small VMAs (e.g. 39-bit) we can't use SizeClassAllocator64 parameterized with size class maps containing a large number of classes, as that will make the allocator region size too small (< 2^32). Several tests were already disabled for Android because of this.
This patch provides the correct allocator configuration for RISC-V (riscv64), generalizes the gating condition for tests that can't be enabled for small VMA systems, and tweaks the tests that can be made compatible with those systems to enable them.
I think the previous gating on Android should instead be AArch64+Android, so the patch reflects that, but feedback regarding the correct target gating is welcome.
I believe that the tests remaining gated can't be tweaked, as they specifically test allocators with incompatible size class maps (for small VMAs), so I deleted kostyak's comment to reflect that. Please let me know if I missed something there.