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
Currently, in many cases, we classify conversions during semantic analysis and then again at lowering.
There are two issues with this:
classification has costs. That is possibly offset by not having to keep conversions around.
With tuples, classification is recursive, so costs are higher. Since we keep some conversion parts anyways, why not whole conversion.
There is a possibility of a disconnect between analysis and lowering if different classification helpers are used (and there are many of them). Just fetching the conversion from the node would make this part less prone to errors.
There could be some concerns with the size of bound conversion node since Conversion is a relatively large struct.
That could be mitigated by shifting less used traits of Conversion into an optional reference field. It may even make sense to make the Conversion itself a reference type. Most conversions are singletons anyways.
The text was updated successfully, but these errors were encountered:
Currently, in many cases, we classify conversions during semantic analysis and then again at lowering.
There are two issues with this:
With tuples, classification is recursive, so costs are higher. Since we keep some conversion parts anyways, why not whole conversion.
There could be some concerns with the size of bound conversion node since Conversion is a relatively large struct.
That could be mitigated by shifting less used traits of Conversion into an optional reference field. It may even make sense to make the Conversion itself a reference type. Most conversions are singletons anyways.
The text was updated successfully, but these errors were encountered: