Before introducing noalias metadata after inlining we check if we need
it or if it is already implied in the caller. That is the case if
the parameter is an argument of the caller that has a noalias attribute
and is otherwise not used in the call. For the former we only look
through pointer casts for now, for the latter we assume all instructions
to be potentially influenced by the caller argument in question.
Details
Details
Diff Detail
Diff Detail
- Build Status
Buildable 5261 Build 5261: arc lint + arc unit
Event Timeline
Comment Actions
It's early in the morning, but I'm having a little trouble understanding the overall goal. Is this fixing a bug, it just being done because it's a waste of time to add the metadata in this situation.
Comment Actions
The latter. There is no correctness bug, just to much metadata in certain situations. The initial idea was to improve the situation of the XLA folks that have to limit the amount of alias information they generate due to the compile time impact.
While David informed me this might not help their case at all, it should avoid the generation of metadata in some cases and could be extended to handle more.
At the end of the day this is just an idea I wanted to try out and see if folks like it and if it is worth pursuing.