[llvm-commits] Patch to add support for WidenVecRes_MERGE_VALUES
Villmow, Micah
Micah.Villmow at amd.com
Tue Aug 30 05:04:00 PDT 2011
Thanks for the feedback, new revision attached.
> -----Original Message-----
> From: Tobias Grosser [mailto:tobias at grosser.es]
> Sent: Tuesday, August 30, 2011 12:12 AM
> To: Villmow, Micah
> Cc: Eli Friedman; llvm-commits
> Subject: Re: [llvm-commits] Patch to add support for
> WidenVecRes_MERGE_VALUES
>
> On 08/30/2011 01:07 AM, Villmow, Micah wrote:
> > [Villmow, Micah] Here is an updated patch. This version merges the
> common
> > code between SplitRes_MERGE_VALUES and WidenVecRes_MERGE_VALUES into
> a
> > seperate function and has them call this function and then modify the
> > resulting value.
>
> Two comments inline, otherwise it looks good to me.
> (Review by official reviewer still necessary).
>
> Cheers
> Tobi
>
>
> > Index: lib/CodeGen/SelectionDAG/LegalizeTypes.h
> > ===================================================================
> > --- lib/CodeGen/SelectionDAG/LegalizeTypes.h (revision 138781)
> > +++ lib/CodeGen/SelectionDAG/LegalizeTypes.h (working copy)
> > @@ -148,12 +148,20 @@
> > SDValue CreateStackStoreLoad(SDValue Op, EVT DestVT);
> > bool CustomLowerNode(SDNode *N, EVT VT, bool LegalizeResult);
> > bool CustomWidenLowerNode(SDNode *N, EVT VT);
> > +
> > + // DecomposeMERGE_VALUES takes a SDNode and returns the first
> > + // operand that illegal operand that needs to be modified.
> Is this correct grammar? What do you mean?
> - DecomposeMERGE_VALUES takes a SDNode and returns the first
> operand that needs to be modified.
> - DecomposeMERGE_VALUES takes a SDNode and returns the first
> illegal operand.
> - DecomposeMERGE_VALUES takes a SDNode and returns the first
> illegal operand which needs to be modified.
>
> > + // All other nodes are legalized, whether they are legal or not.
> > + // The resulting SDValue needs to be modified to make it legal.
> > + SDValue DecomposeMERGE_VALUES(SDNode *N);
> > +
> > SDValue GetVectorElementPointer(SDValue VecPtr, EVT EltVT,
> SDValue Index);
> > SDValue JoinIntegers(SDValue Lo, SDValue Hi);
> > SDValue LibCallify(RTLIB::Libcall LC, SDNode *N, bool isSigned);
> > SDValue MakeLibCall(RTLIB::Libcall LC, EVT RetVT,
> > const SDValue *Ops, unsigned NumOps, bool
> isSigned,
> > DebugLoc dl);
> > +
> > std::pair<SDValue, SDValue> ExpandChainLibCall(RTLIB::Libcall
> LC,
> >
> SDNode *Node, bool isSigned);
> > std::pair<SDValue, SDValue> ExpandAtomic(SDNode *Node);
> > void DAGTypeLegalizer::SplitRes_SELECT(SDNode *N, SDValue&Lo,
> > Index: lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
> > ===================================================================
> > --- lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (revision
> 138781)
> > +++ lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp (working
> copy)
> > @@ -1557,6 +1558,12 @@
> > WidenVT, WidenLHS, DAG.getValueType(ExtVT));
> > }
> >
> > +SDValue DAGTypeLegalizer::WidenVecRes_MERGE_VALUES(SDNode *N)
> > +{
> The '{' should be in the previous line to match coding standards in
> this
> file.
>
> > + SDValue WidenVec = DecomposeMERGE_VALUES(N);
> > + return GetWidenedVector(WidenVec);
> > +}
> > +
> > SDValue DAGTypeLegalizer::WidenVecRes_BITCAST(SDNode *N) {
> > SDValue InOp = N->getOperand(0);
> > EVT InVT = InOp.getValueType();
-------------- next part --------------
A non-text attachment was scrubbed...
Name: AMDIL_Bug_10736-3.patch
Type: application/octet-stream
Size: 5084 bytes
Desc: AMDIL_Bug_10736-3.patch
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20110830/f2313590/attachment.obj>
More information about the llvm-commits
mailing list