LLVM-based x86 emulator with support for unlimited virtual registers, used before the register allocation pass