On 8/17/2016 5:20 AM, deadalnix wrote:
Controlling aliasing is really the #1 optimization barrier these days, so I
don't think it's that good of a thing.
Almost every single one case where Rust end up being faster than C++ is because
their type system allow for more AA information available for the optimizer.
AA is also key to do non GC memory management at language level.
At least for this case, as I mentioned in another post, if the pointer and
length of the global is cached in a local, it can be cached in a register. The
contents of locals don't have aliasing problems because if their addresses are
not taken, nobody can point to them. Optimization relies heavily on that.