Nikita, please review the patch https://gist.github.com/dstogov/06116f1610f45f8152ine3a9927c6c243ac
It's the next attempt to use the single stack for all generators.
Now I don't see any problems or BC breaks.
In case "yield" is used as an expression in context of function call. e.g. var_dump(yield), engine backups and then restores active call frame chain.
Bob tested the patch on application that intensively uses generators, and reported:
15% less L2 cache loads
20% less cycle stalls due to memory subsystem
3% more CPU_CLOCK_UNHALTED due to additional freeze/restore.
I'm going to commit this patch tomorrow.