On 23 July 2013 19:36, Jim Grosbach <grosbach at apple.com> wrote:> This isn’t just a nitpick. This is exactly why you’re seeing differences. > The pass managers aren’t always set up the same, for example. > > FWIW, I feel your pain. This is a long-standing weakness of our > infrastructure. >Jim, A while ago I proposed that we annotated the options the front-end passed to the back-end on the IR with named metadata, but it didn't catch on. Would it make sense to have some call-back mechanism while setting back-end flags to keep a tab on what's called and have a dump as metadata, so that you can just write it to the IR file at the end? More or less what we have for functions, currently. This would hint llc, lli and others to what flags it must set itself (architecture, optimizations, etc) and would minimize the impact of split compilation. Those tools are free to ignore any option it doesn't recognize, of course, as with any metadata. Another way would be to teach llc, lli and others all command line options of all supported front-ends, but that wouldn't be very productive, I think. cheers, --renato -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130723/afb33332/attachment.html>
On Jul 23, 2013, at 3:40 PM, Renato Golin <renato.golin at linaro.org> wrote:> On 23 July 2013 19:36, Jim Grosbach <grosbach at apple.com> wrote: > This isn’t just a nitpick. This is exactly why you’re seeing differences. The pass managers aren’t always set up the same, for example. > > FWIW, I feel your pain. This is a long-standing weakness of our infrastructure. > > Jim, > > A while ago I proposed that we annotated the options the front-end passed to the back-end on the IR with named metadata, but it didn't catch on. > > Would it make sense to have some call-back mechanism while setting back-end flags to keep a tab on what's called and have a dump as metadata, so that you can just write it to the IR file at the end? More or less what we have for functions, currently. > > This would hint llc, lli and others to what flags it must set itself (architecture, optimizations, etc) and would minimize the impact of split compilation. Those tools are free to ignore any option it doesn't recognize, of course, as with any metadata. > > Another way would be to teach llc, lli and others all command line options of all supported front-ends, but that wouldn't be very productive, I think.Maybe? I’m not sure what a good answer is here. Bob and Bill have both looked at this in more detail than I. What do you guys think? -Jim -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130723/b636d363/attachment.html>
On Jul 23, 2013, at 3:59 PM, Jim Grosbach <grosbach at apple.com> wrote:> > On Jul 23, 2013, at 3:40 PM, Renato Golin <renato.golin at linaro.org> wrote: > >> On 23 July 2013 19:36, Jim Grosbach <grosbach at apple.com> wrote: >> This isn’t just a nitpick. This is exactly why you’re seeing differences. The pass managers aren’t always set up the same, for example. >> >> FWIW, I feel your pain. This is a long-standing weakness of our infrastructure. >> >> Jim, >> >> A while ago I proposed that we annotated the options the front-end passed to the back-end on the IR with named metadata, but it didn't catch on. >> >> Would it make sense to have some call-back mechanism while setting back-end flags to keep a tab on what's called and have a dump as metadata, so that you can just write it to the IR file at the end? More or less what we have for functions, currently. >> >> This would hint llc, lli and others to what flags it must set itself (architecture, optimizations, etc) and would minimize the impact of split compilation. Those tools are free to ignore any option it doesn't recognize, of course, as with any metadata. >> >> Another way would be to teach llc, lli and others all command line options of all supported front-ends, but that wouldn't be very productive, I think. > > Maybe? I’m not sure what a good answer is here. Bob and Bill have both looked at this in more detail than I. What do you guys think?The plan is that all (or at least almost all) of those options will move to be function attributes. The backend will be changed to use those attributes instead of command line options. That should solve this problem. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130724/44d420b9/attachment.html>