summaryrefslogtreecommitdiffstats
path: root/llvm/test/CodeGen/WebAssembly
diff options
context:
space:
mode:
authorPhilip Reames <listmail@philipreames.com>2015-12-23 23:44:28 +0000
committerPhilip Reames <listmail@philipreames.com>2015-12-23 23:44:28 +0000
commitcb0f947a2a81730e054b39b0dfb4d90bd52cee61 (patch)
tree75c725a7a469c032527247175d5a80a957569aee /llvm/test/CodeGen/WebAssembly
parent8e7d3b940234864b73833f19f00d8bb5234f1aef (diff)
downloadbcm5719-llvm-cb0f947a2a81730e054b39b0dfb4d90bd52cee61.tar.gz
bcm5719-llvm-cb0f947a2a81730e054b39b0dfb4d90bd52cee61.zip
[Statepoints] Use Indirect operands for spill slots
Teach the statepoint lowering code to emit Indirect stackmap entries for spill inserted by StatepointLowering (i.e. SelectionDAG), but Direct stackmap entries for in-IR allocas which represent manual stack slots. This is what the docs call for (http://llvm.org/docs/StackMaps.html#stack-map-format), but we've been emitting both as Direct. This was pointed out recently on the mailing list as a bug. It also blocks http://reviews.llvm.org/D15632 which extends the lowering to handle vector-of-pointers since only Indirect references can encode a variable sized slot. To implement this, I introduced a new flag on the StackObject class used to maintian information about stack slots. I original considered (and prototyped in http://reviews.llvm.org/D15632), the idea of using the existing isSpillSlot flag, but end up deciding that was a bit too risky and that the cost of adding a new flag was low. Having the new flag will also allow us - in the future - to emit better comments in verbose assembly which indicate where a particular stack spill around a call comes from. (deopt, gc, regalloc). Differential Revision: http://reviews.llvm.org/D15759 llvm-svn: 256352
Diffstat (limited to 'llvm/test/CodeGen/WebAssembly')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud