[PATCH] D21808: [WebAssembly] Handle debug information and virtual registers without crashing
Derek Schuff via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 21 10:24:11 PDT 2016
dschuff added a comment.
@aprantl
Yes, that's correct. (well, it's not an SSA-based representation but it does have the infinite register file). Backends are expected by various target-independent lowering code to have a few particular physical registers (primarily SP/FP), but after lowering to MachineInstr we actually replace those with virtual registers too and use vregs through all the common backend passes. Right before we emit, we actually do a re-numbering and coloring step (to try to reduce the total number of registers and map them into a 0-indexed number space).
Codegen-wise it's gone pretty smoothly; I did some refactoring on PrologEpilogInserter a couple months ago (which reminds me, I still owe a cleanup on that) but most of the passes do just fine. We will need some more work though for dealing with debug info and MC.
https://reviews.llvm.org/D21808
More information about the llvm-commits
mailing list