Virtual ISAs such as WebAssembly and NVPTX use infinite virtual register
sets instead of traditional phsyical registers. PrologEpilogInserter is
run after register allocation and asserts that all virtuals have been
allocated but doesn't depend on this if scavenging is not needed.
This change introduces a TRI hook for targets to allow virtual registers
after regalloc and allows PrologEpilogInserter to preserve the virtual
registers when not using scavenging.