-
Notifications
You must be signed in to change notification settings - Fork 509
Assertion failed in fgMorphCall #2073
Comments
@sandreenko We have a workaround that unblocks CoreRT for now, but we might hit this in other code. |
Ok, I will try to fix it before tomorrow. |
(I was trying to imply it's not urgent and there's no need to drop what you're working on right now. Just put it close to the top of the queue :).) |
@sivarv please take a look.
Is it correct tail call tree or not? |
@sandreenko - It doesn't look like a valid tail call tree that RyuJIt supports as per fgMorphCall() assert. What is even more suspicious is that call returns void and we have a cast from void to int! I think investigating that will lead us to the actual issue here. |
It should be cast from int to bool to int, but we force call return type to void for all tail calls during morph phase.
|
Please send me the full jitdump of the method by e-mail. |
In CoreCLR,
canTailCall
is hardcoded to returnfalse
in Ready To Run compilation - we never attempt to do tail calls. The CoreRT compiler doesn't put such restrictions and we're hitting the following assert when compiling Hello world with CHK RyuJIT (the combination of R2R and tail calls allowed triggers this):To repro, undo the workaround from #2074.
@jkotas scoped the problem down to an issue around
FEATURE_TAILCALL_OPT_SHARED_RETURN
The text was updated successfully, but these errors were encountered: