[llvm-dev] Testing "normal" cross-compilers versus GPU backends

Philip Reames via llvm-dev llvm-dev at lists.llvm.org
Tue Sep 8 09:07:23 PDT 2015


On 09/04/2015 10:25 AM, Robinson, Paul via llvm-dev wrote:
>
>> -----Original Message-----
>> From: James Y Knight [mailto:jyknight at google.com]
>> Sent: Friday, September 04, 2015 10:12 AM
>> To: Mehdi Amini; Mehdi Amini via llvm-dev
>> Cc: Robinson, Paul
>> Subject: Re: [llvm-dev] Testing "normal" cross-compilers versus GPU
>> backends
>>
>>>>> The Hexagon precedent is interesting; Krzysztof said they set the
>> default
>>>>> triple, and didn't have to xfail all that much stuff.  Searching the
>> tree,
>>>>> I find exactly 7 individual tests marked XFAIL: hexagon, plus it
>> disables
>>>>> all of ExecutionEngine, and turns off the 'object-emission' feature.
>>>>>
>>>>> I'm curious if you would try setting the default triple to match your
>>>>> target, and see what /kinds/ of tests fail.  The raw number is much
>> less
>>>>> interesting than in the categories.
>>>> Failing tests attached, let me know which ones you’d like me to
>> investigate.
>>> Tests:
>>> <failing_tests>
>>>
>>> (note I forced enable the “native” feature on this run)
>> So, just looking at the first one in that list for an example, running:
>> llc -mtriple amdgcn test/CodeGen/Generic/2002-04-14-
>> UnexpectedUnsignedType.ll
>> you get an error of:
>> error: unsupported call to function bar in foo
>>
>> ..because apparently AMDGPU simply doesn't support function calls. At all.
>>
>> That is a rather unusual feature to be missing, and I'd imagine is causing
>> a fair number of the other nominally-generic tests to fail too...
> Hmm I'm told GPUs as a class typically don't support calls (everything has
> to be inlined).
>
> Perhaps the more appropriate direction here is to invent a "gpu" config flag
> and mark some things XFAIL: gpu.
> --paulr
Mehdi - Could you list a couple of the features that show up in generic 
tests which your target doesn't support by design?  After reading 
through the discussion to this point, I don't really have a feel for 
that.   Additionally, do you have any sense for how common that set is 
across GPU targets?

Paul - If we introduce the type of flag your talking about, we should 
probably have a discussion about which classes of backends LLVM supports 
and try to create a *documented* list of feature expectations somewhere.

p.s. Maybe I missed something, but why did simply using "XFAIL: AMDGPU" 
get rejected?  That seems like the easiest fix.

Philip



More information about the llvm-dev mailing list