[PATCH] D18257: Add "first class" lowering for deopt operand bundles

Sanjoy Das via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 17 16:56:51 PDT 2016


sanjoy created this revision.
sanjoy added reviewers: reames, atrick, majnemer, JosephTremoulet, pgavlin.
sanjoy added subscribers: llvm-commits, majnemer.
Herald added subscribers: mcrosier, sanjoy.

After this change, deopt operand bundles can be lowered directly by
SelectionDAG into STATEPOINT instructions (which are then lowered to a
call or sequence of nop, with an associated __llvm_stackmaps entry0.
This obviates the need to round-trip deoptimization state through
gc.statepoint via RewriteStatepointsForGC.

@majnemer: can you please take a look to check that I haven't botched
handling of `"funclet"` operand bundles?

http://reviews.llvm.org/D18257

Files:
  include/llvm/IR/Statepoint.h
  lib/CodeGen/SelectionDAG/FastISel.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
  lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
  lib/CodeGen/SelectionDAG/StatepointLowering.cpp
  test/CodeGen/X86/deopt-bundles.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18257.50990.patch
Type: text/x-patch
Size: 11701 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160317/981d52c4/attachment.bin>


More information about the llvm-commits mailing list