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

Derek Schuff via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 17 17:14:43 PST 2020


dschuff added a subscriber: yurydelendik.
dschuff added a comment.

Oops, this is just the diff from D71681 <https://reviews.llvm.org/D71681> (which was committed as rG3a05c3969c18 <https://reviews.llvm.org/rG3a05c3969c18b5520e360b78fc63cda39a6be98f> and reverted), but not the whole patch.
I'll reland the whole thing together, but if @yurydelendik or @sunfish  have comments I'm happy to hear them.

The previous patch was reverted because exempting the frame pointer register from `LIS.splitSeparateComponents()` causes the MachineInstrVerifier to complain whenever there is interesting modification of the stack pointer in the middle of the function (it basically enforces that the range has in fact been split). Those are the same cases where we can't just use a single `DW_AT_frame_base` for the whole function (we'll probably need CFI), so our debug info is basically just incorrect for those cases. But with this code we don't fail the verifier. The behavior is the same otherwise.

The modifications to the frame pointer also get stackified when this happens (as intended), so assuming we want to keep doing that, we'll have to update the CFI info every time we modify those values. That logic may actually be similar to what we need to do for optimized debug info (e.g. when we have DEBUG_VALUEs referring to those stackified registers).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D72969





More information about the llvm-commits mailing list