On Fri, Sep 16, 2016 at 12:29:49PM +0200, Richard Biener wrote: > > PS What would be a good way to arrange for the VRP pass to run before > > the object size pass so that the latter can benefit more from range > > information? As an experiment I added another instance of the VRP > > pass before the object size pass in passes.def and that worked, but > > I suspect that running VRP a third time isn't optimal.
As I said in PR77606, I have strong doubts about desirability of using VRP info for __builtin_object_size computation. VRP is an optimization that assumes undefined behavior does not happen, __builtin_object_size is typically used to catch undefined behavior, so pretty much assumes undefined behavior can happen. So, the __builtin_object_size computations should prove no other value can appear in any program invocation, rather than just any valid program invocation. Sure, it is a best effort, with possibility to return "unknown" or conservatively correct answers, but using VRP info is IMHO already too much. Jakub