[PATCH] D26270: Avoid tail recursion elimination across calls with operand bundles

Joseph Tremoulet via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 3 06:01:42 PDT 2016


JosephTremoulet added a comment.

In https://reviews.llvm.org/D26270#586489, @majnemer wrote:

> I don't think funclets need to worry about this.


I would have thought they did.  If an exception is caught (so we enter the funclet) and then there's a recursive call to the main method (which has the funclet bundle), I think we want a new frame for the main method; if we rewrite that recursive call as a jump, but then an exception is raised in the recursive invocation, is the unwinder going to do the right thing?  The IP will be telling it that we're in the main function, not the funclet.  If that catch handler enters a try region before it makes the recursive call, then the main function and funclet would have different handlers, so we should be able to see empirically whether the right thing happens.


https://reviews.llvm.org/D26270





More information about the llvm-commits mailing list