[llvm] r227397 - Add nullptr checks for TargetSelectionDAGInfo in SelectionDAG.

David Blaikie dblaikie at gmail.com
Wed Jan 28 16:22:56 PST 2015


Any test coverage?

On Wed, Jan 28, 2015 at 3:50 PM, Manuel Jacob <me at manueljacob.de> wrote:

> Author: mjacob
> Date: Wed Jan 28 17:50:40 2015
> New Revision: 227397
>
> URL: http://llvm.org/viewvc/llvm-project?rev=227397&view=rev
> Log:
> Add nullptr checks for TargetSelectionDAGInfo in SelectionDAG.
>
> TSI is not guaranteed be non-null in SelectionDAG.
>
> Modified:
>     llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp?rev=227397&r1=227396&r2=227397&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Wed Jan 28
> 17:50:40 2015
> @@ -4272,11 +4272,13 @@ SDValue SelectionDAG::getMemcpy(SDValue
>
>    // Then check to see if we should lower the memcpy with target-specific
>    // code. If the target chooses to do this, this is the next best.
> -  SDValue Result =
> -      TSI->EmitTargetCodeForMemcpy(*this, dl, Chain, Dst, Src, Size,
> Align,
> -                                   isVol, AlwaysInline, DstPtrInfo,
> SrcPtrInfo);
> -  if (Result.getNode())
> -    return Result;
> +  if (TSI) {
> +    SDValue Result = TSI->EmitTargetCodeForMemcpy(
> +        *this, dl, Chain, Dst, Src, Size, Align, isVol, AlwaysInline,
> +        DstPtrInfo, SrcPtrInfo);
> +    if (Result.getNode())
> +      return Result;
> +  }
>
>    // If we really need inline code and the target declined to provide it,
>    // use a (potentially long) sequence of loads and stores.
> @@ -4338,10 +4340,12 @@ SDValue SelectionDAG::getMemmove(SDValue
>
>    // Then check to see if we should lower the memmove with target-specific
>    // code. If the target chooses to do this, this is the next best.
> -  SDValue Result = TSI->EmitTargetCodeForMemmove(
> -      *this, dl, Chain, Dst, Src, Size, Align, isVol, DstPtrInfo,
> SrcPtrInfo);
> -  if (Result.getNode())
> -    return Result;
> +  if (TSI) {
> +    SDValue Result = TSI->EmitTargetCodeForMemmove(
> +        *this, dl, Chain, Dst, Src, Size, Align, isVol, DstPtrInfo,
> SrcPtrInfo);
> +    if (Result.getNode())
> +      return Result;
> +  }
>
>    // FIXME: If the memmove is volatile, lowering it to plain libc memmove
> may
>    // not be safe.  See memcpy above for more details.
> @@ -4390,10 +4394,12 @@ SDValue SelectionDAG::getMemset(SDValue
>
>    // Then check to see if we should lower the memset with target-specific
>    // code. If the target chooses to do this, this is the next best.
> -  SDValue Result = TSI->EmitTargetCodeForMemset(*this, dl, Chain, Dst,
> Src,
> -                                                Size, Align, isVol,
> DstPtrInfo);
> -  if (Result.getNode())
> -    return Result;
> +  if (TSI) {
> +    SDValue Result = TSI->EmitTargetCodeForMemset(
> +        *this, dl, Chain, Dst, Src, Size, Align, isVol, DstPtrInfo);
> +    if (Result.getNode())
> +      return Result;
> +  }
>
>    // Emit a library call.
>    Type *IntPtrTy = TLI->getDataLayout()->getIntPtrType(*getContext());
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150128/f2941658/attachment.html>


More information about the llvm-commits mailing list