r226548 - Introduce SPIR calling conventions.
Alexander Kornienko
alexfh at google.com
Tue Jan 20 03:17:22 PST 2015
On Tue, Jan 20, 2015 at 12:11 PM, Sameer Sahasrabuddhe <
sameer.sahasrabuddhe at amd.com> wrote:
>
> On 1/20/2015 4:38 PM, Alexander Kornienko wrote:
>
> On Tue, Jan 20, 2015 at 12:01 PM, Sameer Sahasrabuddhe <
> sameer.sahasrabuddhe at amd.com> wrote:
>
>>
>> On 1/20/2015 4:29 PM, Alexander Kornienko wrote:
>>
>>
>> On Tue, Jan 20, 2015 at 11:56 AM, Sameer Sahasrabuddhe <
>> sameer.sahasrabuddhe at amd.com> wrote:
>>
>>>
>>> On 1/20/2015 4:24 PM, Sameer Sahasrabuddhe wrote:
>>>
>>>
>>> On 1/20/2015 4:16 PM, Alexander Kornienko wrote:
>>>
>>> On Tue, Jan 20, 2015 at 11:33 AM, Alexander Kornienko <
>>> alexfh at google.com> wrote:
>>>
>>>>
>>>> On Tue, Jan 20, 2015 at 7:44 AM, Sameer Sahasrabuddhe <
>>>> sameer.sahasrabuddhe at amd.com> wrote:
>>>>
>>>>>
>>>>> Added: cfe/trunk/test/CodeGenOpenCL/spir-calling-conv.cl
>>>>> URL:
>>>>> http://llvm.org/viewvc/llvm-project/cfe/trunk/test/CodeGenOpenCL/spir-calling-conv.cl?rev=226548&view=auto
>>>>>
>>>>> ==============================================================================
>>>>> --- cfe/trunk/test/CodeGenOpenCL/spir-calling-conv.cl (added)
>>>>> +++ cfe/trunk/test/CodeGenOpenCL/spir-calling-conv.cl Tue Jan 20
>>>>> 00:44:32 2015
>>>>> @@ -0,0 +1,18 @@
>>>>> +// RUN: %clang_cc1 %s -triple "spir-unknown-unknown" -emit-llvm -o -
>>>>> | FileCheck %s
>>>>> +
>>>>> +int get_dummy_id(int D);
>>>>> +
>>>>> +kernel void bar(global int *A);
>>>>> +
>>>>> +kernel void foo(global int *A)
>>>>> +// CHECK: define spir_kernel void @foo(i32 addrspace(1)* %A)
>>>>> +{
>>>>> + int id = get_dummy_id(0);
>>>>> + // CHECK: %call = tail call spir_func i32 @get_dummy_id(i32 0)
>>>>>
>>>>
>>>> This test fails
>>>> <http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_check/1183/>.
>>>> Please fix or revert.
>>>>
>>>
>>> Clarification: this test fails only in some configurations, thus it
>>> doesn't look like a trivial typo in the test which I could fix myself.
>>>
>>> This is blocking us, so I'm going to revert the revision.
>>>
>>>
>>> Okay, go ahead, then. Looking into it.
>>>
>>>
>>>
>> Reverted in r226558.
>>
>>
>>> I just had a look, and the failure looks trivial. The test looks for
>>> "%call" as the name of the call instruction, but that particular config
>>> seems to produce an anonymous value. Could you retry with a different
>>> pattern in the test? It will be hard to test this on my machine.
>>>
>>
>> Yes, I can test it in the setup where it fails. Do you suggest to just
>> replace "%call" with "%{{.*}}" or something?
>>
>>
>> Yes, that's correct. The intention is to check for "spir_func" calling
>> convention, so anything else that is unpredictable can be matched against a
>> regexp.
>>
>
> It works with a bit more specific pattern: "%{{[a-z0-9]+}}". I can
> revert the revert and apply the fix.
>
>
> Please do. I won't be able to verify the fix without access to the failing
> config. Do note that the same fix will be required for the other call
> instruction which calls "@bar" with the "spir_kernel" calling convention.
>
The check for the @bar call looks a bit different:
// CHECK: tail call spir_kernel void @bar(i32 addrspace(1)* %A)
There's no "%call = " part in it and it doesn't fail in my setup.
> Thanks!
>
> Sameer.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20150120/9d13bea9/attachment.html>
More information about the cfe-commits
mailing list