[llvm] r195455 - [mips][msa] Fix corner case for integer constant splats with undef values.

Bill Wendling isanbard at gmail.com
Tue Nov 26 03:21:03 PST 2013


I added these to the branch. Thanks!

-bw

On Nov 26, 2013, at 2:41 AM, Daniel Sanders <daniel.sanders at imgtec.com> wrote:

> Thanks. I'll merge the commits today.
> 
> I agree there should be a code owner for the MIPS backend. As I understand it, the role boils down to matching commits to an LGTM, and approving merges to release branches. The role doesn't necessarily require doing reviews personally, merely ensuring that they are done and starting one if necessary (possibly delegating it). Assuming my understanding is correct, then there's a few likely candidates within MIPS. We will need to discuss it internally before I name anyone though. I'll bring the subject up in our next team meeting.
> 
>> -----Original Message-----
>> From: Chris Lattner [mailto:sabre at nondot.org]
>> Sent: 25 November 2013 16:47
>> To: Daniel Sanders
>> Cc: llvm-commits at cs.uiuc.edu
>> Subject: Re: [llvm] r195455 - [mips][msa] Fix corner case for integer constant
>> splats with undef values.
>> 
>> Yes, I approve.  We really should have a code owner for the MIPS backend.
>> Any suggestions?
>> 
>> -Chris
>> 
>>> On Nov 25, 2013, at 8:06 AM, Daniel Sanders
>> <Daniel.Sanders at imgtec.com> wrote:
>>> 
>>> Hi Chris,
>>> 
>>> There doesn't seem to be an owner for the MIPS backend in
>> CODE_OWNERS.txt. Can you approve merging this commit (and the two
>> corrections r195456, r195469 to fix a typo and missing testcase) to the
>> release_34 branch?
>>> 
>>> Just to give you the context, it's part of the following series of patches:
>>> * r195343 - [mips][msa/dsp] Only do DSP combines if DSP is enabled.
>>> * r195364 - [mips][msa] Fix a corner case in performORCombine() when
>> combining nodes into VSELECT.
>>> * r195444 - [mips][msa] Float vector constants cannot use ldi.[wd] directly.
>> Bitcast from the appropriate integer vector type.
>>> * r195455, r195456, and r195469 - [mips][msa] Fix corner case for integer
>> constant splats with undef values.
>>> Once these four patches are committed, an llvm-stress + llc loop can run for
>> over 15 hours without llc crashing (up from a previous best of ~20 seconds).
>>> 
>>>> -----Original Message-----
>>>> From: Daniel Sanders
>>>> Sent: 22 November 2013 15:53
>>>> To: Daniel Sanders; llvm-commits at cs.uiuc.edu
>>>> Subject: RE: [llvm] r195455 - [mips][msa] Fix corner case for integer
>>>> constant splats with undef values.
>>>> 
>>>> It seems I forgot to commit the test case in this commit. Committed
>>>> it in r195469.
>>>> 
>>>>> -----Original Message-----
>>>>> From: llvm-commits-bounces at cs.uiuc.edu [mailto:llvm-commits-
>>>>> bounces at cs.uiuc.edu] On Behalf Of Daniel Sanders
>>>>> Sent: 22 November 2013 13:14
>>>>> To: llvm-commits at cs.uiuc.edu
>>>>> Subject: [llvm] r195455 - [mips][msa] Fix corner case for integer
>>>>> constant splats with undef values.
>>>>> 
>>>>> Author: dsanders
>>>>> Date: Fri Nov 22 07:14:06 2013
>>>>> New Revision: 195455
>>>>> 
>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=195455&view=rev
>>>>> Log:
>>>>> [mips][msa] Fix corner case for integer constant splats with undef
>> values.
>>>>> 
>>>>> lowerBUILD_VECTOR() was treating integer constant splats as being
>>>>> legal regardless of whether they had undef values. This caused
>>>>> instruction selection failures when the undefs were legalized to
>>>>> zero, making the constant non-splat.
>>>>> 
>>>>> Fixed this by requiring HasAnyUndef to be false for a integer
>>>>> constant splat to be legal. If it is true, a new node is generated
>>>>> with the undefs replaced with the necessary values to remain a splat.
>>>>> 
>>>>> 
>>>>> Modified:
>>>>>   llvm/trunk/lib/Target/Mips/MipsSEISelLowering.cpp
>>>>> 
>>>>> Modified: llvm/trunk/lib/Target/Mips/MipsSEISelLowering.cpp
>>>>> URL: http://llvm.org/viewvc/llvm-
>>>> 
>> project/llvm/trunk/lib/Target/Mips/MipsSEISelLowering.cpp?rev=195455&
>>>> r
>>>>> 1
>>>>> =195454&r2=195455&view=diff
>>>> 
>> ==========================================================
>>>>> ====================
>>>>> --- llvm/trunk/lib/Target/Mips/MipsSEISelLowering.cpp (original)
>>>>> +++ llvm/trunk/lib/Target/Mips/MipsSEISelLowering.cpp Fri Nov 22
>>>>> +++ 07:14:06 2013
>>>>> @@ -2211,8 +2211,9 @@ SDValue MipsSETargetLowering::lowerBUILD
>>>>> 
>>>>>    // If the value fits into a simm10 then we can use ldi.[bhwd]
>>>>>    // However, if it isn't an integer type we will have to bitcast from an
>>>>> -    // integer type first.
>>>>> -    if (ResTy.isInteger() && SplatValue.isSignedIntN(10))
>>>>> +    // integer type first. Also, it there are any undefs, we must lower
>> them
>>>>> +    // to defined values first.
>>>>> +    if (ResTy.isInteger() && !HasAnyUndefs &&
>>>>> + SplatValue.isSignedIntN(10))
>>>>>      return Op;
>>>>> 
>>>>>    EVT ViaVecTy;
>>>>> 
>>>>> 
>>>>> _______________________________________________
>>>>> llvm-commits mailing list
>>>>> llvm-commits at cs.uiuc.edu
>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list