[PATCH] D17732: Introduce @llvm.experimental.deoptimize

Sanjoy Das via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 9 13:47:01 PST 2016


sanjoy added a comment.

The lowering I'm doing here is basically incorrect.  The lowering should be going through RS4GC /  `gc.statepoint` (since that is the only way LLC can understand deopt state).  There is also a missing assert in SelectionDAG and FastISel -- at this point they do not know how to lower operand bundles, and should assert if they do see a call with operand bundle (had this assert been there I'd not have misled myself).

Also, given that we'll go through RS4GC, it makes the "lower varargs to regular args" bit fairly easy.

Given that the lowering bits will be a little more complex now, what do you think about the following plan:

- Rip out the lowering parts from this change
- Change the spec to have deoptimize take varargs
- Introduce lowering via RS4GC in a separate change

?

(I'll also add some assertions to SelectionDAG and FastISel to fail on calls with operand bundles, but that's not directly relevant here)


http://reviews.llvm.org/D17732





More information about the llvm-commits mailing list