[PATCH] D71681: [WIP] [WebAssembly] Track frame registers through VReg and local allocation

Derek Schuff via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 18 17:12:30 PST 2019


dschuff added a comment.

I think that this approach to tracking the frame register through VReg and local substitution will work fairly reliably for now, because the frame register is live through the whole function and is unlikely to be coalesced with other locals or stackified.
One thing I don't like about D69807 <https://reviews.llvm.org/D69807> is that `getFrameRegister` is called in a variety of places during generation of various bits of the code as well as in `DwarfCompileUnit`, whereas `getFrameBaseLocation` only has this particular meaning and used here (while in the other places `getFrameRegister` is returning phsyical registers that are meaningless partway through the pipeline.

I had hoped that I could avoid introducing a cross-cutting abstraction like `getFrameBaseLocation` by having the DWARF code either check the target (as it does with NVPTX) or check whether `getFrameRegister` returns a physreg (as it does currently, in order to ignore vregs); but then we still don't have a way to actually get the local number to encode, because it's stored in a data structure that's in the WebAssembly backend and may not even be compiled in.
So I'm not sure if we  can find a good way to get it from `DwarfCompileUnit`.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D71681/new/

https://reviews.llvm.org/D71681





More information about the llvm-commits mailing list