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

Daniel Sanders Daniel.Sanders at imgtec.com
Tue Nov 26 03:57:59 PST 2013


Thanks Bill.

Chris: Rich Fuhler (CC'd) has asked me to let you know that he will contact you today about ownership of the MIPS backend.

> -----Original Message-----
> From: Bill Wendling [mailto:isanbard at gmail.com]
> Sent: 26 November 2013 11:21
> To: Daniel Sanders
> Cc: Chris Lattner; llvm-commits at cs.uiuc.edu
> Subject: Re: [llvm] r195455 - [mips][msa] Fix corner case for integer constant
> splats with undef values.
> 
> 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