<div dir="ltr">David,<div><br></div><div style>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 style>
<br></div><div style>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 style><br></div><div style>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 style><br></div><div style>I think there are two courses of action here:</div><div style><br></div><div style>1. Identify the issue, isolate the case and create a bug to resolve later.</div><div style>2. Make sure LNT does exactly what the build bots are doing</div>
<div style><br></div><div style>I'm working on item 1 right now, not sure how item 2 can be solved...</div><div style><br></div><div style>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 style><br></div><div style>Also, if we're not running LNT as often as buildbots, the benefit of having them different is sporadic at best.</div><div style><br></div><div style>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 style><br></div><div style>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 style><br>
</div><div style>cheers,</div><div style>--renato</div></div>