You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
"Leaf functions are functions that do not change any non-volatile registers. .. Leaf functions can be unwound simply by simulating a return, so pdata and xdata are not required."
Not emitting these would be good for binary size.
Note that such functions can still tail-call others, so they're not really leafs in the call-graph sense.
If we hook up a way to determine whether a function is a leaf in this sense, we can also use it to do conditional tail-calls for Win64. Such calls would generally confuse the unwinder, but in leaf functions they are fine.
The text was updated successfully, but these errors were encountered:
Extended Description
From https://msdn.microsoft.com/en-us/library/ms235286.aspx:
"Leaf functions are functions that do not change any non-volatile registers. .. Leaf functions can be unwound simply by simulating a return, so pdata and xdata are not required."
Not emitting these would be good for binary size.
Note that such functions can still tail-call others, so they're not really leafs in the call-graph sense.
If we hook up a way to determine whether a function is a leaf in this sense, we can also use it to do conditional tail-calls for Win64. Such calls would generally confuse the unwinder, but in leaf functions they are fine.
The text was updated successfully, but these errors were encountered: