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
Smalltalk being a fully dynamic language is still very structured in terms of memory organization. All objects share the same format and operate in a very simple and straightforward way. This is very convinient from compiler's point of view because we do not need to handle a wide variety of side effects and make potentially dangerous assumptions.
One of this is pointer aliasing. Smalltalk objects never overlap. Pointers to objects always point to the header and do not overlap too (restricted pointer access in terms of C). The only situation when pointers may overlap is the BulkReplace primitive operation which is performed on the same object. Non-object pointers are instances of SmallInt and need to be handled separately.
Knowing these facts we may implement very optimistic alias analyzer that will help LLVM to solve pointer aliasing issues. Future progress in static type inference will boost it even further.
Smalltalk being a fully dynamic language is still very structured in terms of memory organization. All objects share the same format and operate in a very simple and straightforward way. This is very convinient from compiler's point of view because we do not need to handle a wide variety of side effects and make potentially dangerous assumptions.
One of this is pointer aliasing. Smalltalk objects never overlap. Pointers to objects always point to the header and do not overlap too (restricted pointer access in terms of C). The only situation when pointers may overlap is the
BulkReplace
primitive operation which is performed on the same object. Non-object pointers are instances ofSmallInt
and need to be handled separately.Knowing these facts we may implement very optimistic alias analyzer that will help LLVM to solve pointer aliasing issues. Future progress in static type inference will boost it even further.
See also: http://llvm.org/docs/AliasAnalysis.html
The text was updated successfully, but these errors were encountered: