<div dir="ltr">FYI, attached is a way to reproduce the error without the test-suite paraphernalia.<div><br></div><div style>cheers,</div><div style>--renato</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On 3 January 2013 12:05, Renato Golin <span dir="ltr"><<a href="mailto:renato.golin@linaro.org" target="_blank">renato.golin@linaro.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr">David,<div><br></div><div>I got some more work on the Livermore Loops and I found out that the issue is the difference in the parameters between a single step and a multi step compilation.</div><div>
<br></div><div>When you compile "clang kernel06.c" it works fine, but when you get all steps (clang -emit-llvm + llvm-as + opt + llc etc), the defaults options of each and how they interact is showing a bug in the code generated.</div>
<div><br></div><div>This difference is due to the fact that I'm running the test-suite using LNT, while the build bots are running it using Make directly. I'd expect them both to be the same, but apparently they're quite different in what kind of parameters they use, passes they test and results they get.</div>
<div><br></div><div>I think there are two courses of action here:</div><div><br></div><div>1. Identify the issue, isolate the case and create a bug to resolve later.</div><div>2. Make sure LNT does exactly what the build bots are doing</div>
<div><br></div><div>I'm working on item 1 right now, not sure how item 2 can be solved...</div><div><br></div><div>Of course, the fact that it's the not same flow meant we caught a bug in LLVM, but that's bound to create more confusion and broken commits, which is worse in the long run.</div>
<div><br></div><div>Also, if we're not running LNT as often as buildbots, the benefit of having them different is sporadic at best.</div><div><br></div><div>When I set up some tests to run on ARM I have done both direct and multi-step, to make sure they were generating the same code and in many cases I found that the order in which the passes were executed was breaking some tests.</div>
<div><br></div><div>We managed to get the EDG bridge to set it up in the same way as the multi-pass would, so we would get similar results, but it doesn't seem to be the case with clang.</div><div><br>
</div><div>cheers,</div><div>--renato</div></div>
</blockquote></div><br></div>