James Y Knight via llvm-dev
2015-Sep-04 17:12 UTC
[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...
Robinson, Paul via llvm-dev
2015-Sep-04 17:25 UTC
[llvm-dev] Testing "normal" cross-compilers versus GPU backends
> -----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
Philip Reames via llvm-dev
2015-Sep-08 16:07 UTC
[llvm-dev] Testing "normal" cross-compilers versus GPU backends
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. > --paulrMehdi - 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