[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