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

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 21 17:51:45 PDT 2016

reames accepted this revision.
reames added a comment.
This revision is now accepted and ready to land.

LGTM w/minor comments as follow on commits.

Comment at: lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp:6120
@@ +6119,3 @@
+#ifndef NDEBUG
+  // Deopt bundles are lowered in LowerCallSiteWithDeoptBundle, and we don't
+  // have to do anything here to lower funclet bundles.
Minor: introducing a helper function which asserts if any operand bundle types not passed in are present would be a good cleanup.  Please do as a separate change.

assert(!hasOperandBundleOtherThan({OB_deopt, OB_funclet});

Comment at: lib/CodeGen/SelectionDAG/StatepointLowering.cpp:840
@@ +839,3 @@
+    ImmutableCallSite CS, SDValue Callee, const BasicBlock *EHPadBB) {
+  assert(CS.getNumOperandBundles() == 1 &&
+         "Only deopt operand bundles can be lowered!");
minor: I thought you said this could handle funclet?  

If so, please add a test case and weaken the assert in a followon patch.


More information about the llvm-commits mailing list