<div dir="ltr">On 23 July 2013 19:36, Jim Grosbach <span dir="ltr"><<a href="mailto:grosbach@apple.com" target="_blank">grosbach@apple.com</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word">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.<br><div><div><br></div><div>FWIW, I feel your pain. This is a long-standing weakness of our infrastructure.</div>
</div></div></blockquote><div></div></div><br></div><div class="gmail_extra">Jim,</div><div class="gmail_extra"><br></div><div class="gmail_extra">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. </div>
<div class="gmail_extra"><br></div><div class="gmail_extra">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.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">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.</div>
<div class="gmail_extra"><br></div><div class="gmail_extra">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.</div><div class="gmail_extra">
<br></div><div class="gmail_extra">cheers,</div><div class="gmail_extra">--renato</div></div>