<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Mar 26, 2015 at 3:46 AM, David Chisnall <span dir="ltr"><<a href="mailto:David.Chisnall@cl.cam.ac.uk" target="_blank">David.Chisnall@cl.cam.ac.uk</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Hi David,<br>
<span><br>
On 18 Feb 2015, at 06:47, David Blaikie <<a href="mailto:dblaikie@gmail.com" target="_blank">dblaikie@gmail.com</a>> wrote:<br>
><br>
> 1) add explicit types where required in IR instructions - gep, load, byval, anything else I can find...<br>
>   a) Provide the mechanism to specify it (in textual IR, bitcode, and LLVM IR APIs)<br>
>   b) Update callers to Clang, LLVM, and Polly, to pass that information (initially just asserting that it's the same information as was provided by the typed-pointer operands)<br>
<br>
</span>Thank you very much for providing a script for updating the test cases.  This was immensely valuable for updating our out-of-tree tests.<br></blockquote><div><br>Great - I'm glad they worked out well.<br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">One thing that our update showed, however, was that the script did not work for GEPs that had a non-zero address space pointer as the base. </blockquote><div><br>Hmm, that's curious - GEP operators or GEP instructions? I think I came across non-zero address spaces in the base pointer type & had the scripts cope with that in both cases (GEP operator and GEP instruction). Do you have a specific example? I'd be happy to update the test script so that it's improved in case anyone else hits this.<br><br>Here's one example from the gep instruction changes (none of the test cases in that commit were updated manually, all were done using the script)<br><br><span style="color:rgb(0,0,0);font-family:monospace">-  %arrayidx = getelementptr <2 x i32> addrspace(1)* %tmp, i32 %tmp1</span><br style="color:rgb(0,0,0);font-family:monospace"><span style="color:rgb(0,0,0);font-family:monospace">+  %arrayidx = getelementptr <2 x i32>, <2 x i32> addrspace(1)* %tmp, i32 %tmp1<br></span><br>Is there some other use of addrspace you're referring to/I'm not understanding?<br><br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> Most of our tests had at least one such GEP, but given that you didn't encounter this problem it looks like there's a fairly substantial gap in test coverage in LLVM.  People with in-tree targets that support multiple address spaces might want to take a look at this omission...<br>
<span><font color="#888888"><br>
David<br>
<br>
</font></span></blockquote></div><br></div></div>