[llvm-branch-commits] [llvm-branch] r196668 - Merging r196638:

NAKAMURA Takumi geek4civic at gmail.com
Sat Dec 7 16:10:03 PST 2013


Bill,

It is fixup for r196637. Please revert this r196668 or pull r196637.

2013/12/8 Bill Wendling <isanbard at gmail.com>:
> Author: void
> Date: Sat Dec  7 15:24:29 2013
> New Revision: 196668
>
> URL: http://llvm.org/viewvc/llvm-project?rev=196668&view=rev
> Log:
> Merging r196638:
> ------------------------------------------------------------------------
> r196638 | arsenm | 2013-12-06 18:58:45 -0800 (Fri, 06 Dec 2013) | 1 line
>
> Fix assert with copy from global through addrspacecast
> ------------------------------------------------------------------------
>
> Modified:
>     llvm/branches/release_34/   (props changed)
>     llvm/branches/release_34/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
>     llvm/branches/release_34/test/Transforms/InstCombine/addrspacecast.ll
>
> Propchange: llvm/branches/release_34/
> ------------------------------------------------------------------------------
> --- svn:mergeinfo (original)
> +++ svn:mergeinfo Sat Dec  7 15:24:29 2013
> @@ -1,3 +1,3 @@
>  /llvm/branches/Apple/Pertwee:110850,110961
>  /llvm/branches/type-system-rewrite:133420-134817
> -/llvm/trunk:155241,195092-195094,195100,195102-195103,195118,195129,195136,195138,195148,195152,195156-195157,195161-195162,195193,195272,195317-195318,195327,195330,195333,195339,195343,195355,195364,195379,195397-195399,195401,195408,195421,195423-195424,195432,195439,195444,195455-195456,195469,195476-195477,195479,195491-195493,195514,195528,195547,195567,195573-195576,195590-195591,195599,195632,195635-195636,195670,195677,195679,195682,195684,195713,195716,195769,195773,195779,195782,195787-195788,195791,195803,195812,195827,195834,195843-195844,195878-195881,195887,195903,195905,195912,195915,195932,195936-195943,195972-195973,195975-195976,196004,196044-196046,196069,196100,196104,196129,196151,196153,196261,196267,196269,196294,196369,196391,196508,196532,196538,196611,196658
> +/llvm/trunk:155241,195092-195094,195100,195102-195103,195118,195129,195136,195138,195148,195152,195156-195157,195161-195162,195193,195272,195317-195318,195327,195330,195333,195339,195343,195355,195364,195379,195397-195399,195401,195408,195421,195423-195424,195432,195439,195444,195455-195456,195469,195476-195477,195479,195491-195493,195514,195528,195547,195567,195573-195576,195590-195591,195599,195632,195635-195636,195670,195677,195679,195682,195684,195713,195716,195769,195773,195779,195782,195787-195788,195791,195803,195812,195827,195834,195843-195844,195878-195881,195887,195903,195905,195912,195915,195932,195936-195943,195972-195973,195975-195976,196004,196044-196046,196069,196100,196104,196129,196151,196153,196261,196267,196269,196294,196369,196391,196508,196532,196538,196611,196638,196658
>
> Modified: llvm/branches/release_34/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_34/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp?rev=196668&r1=196667&r2=196668&view=diff
> ==============================================================================
> --- llvm/branches/release_34/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp (original)
> +++ llvm/branches/release_34/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp Sat Dec  7 15:24:29 2013
> @@ -263,9 +263,9 @@ Instruction *InstCombiner::visitAllocaIn
>          for (unsigned i = 0, e = ToDelete.size(); i != e; ++i)
>            EraseInstFromFunction(*ToDelete[i]);
>          Constant *TheSrc = cast<Constant>(Copy->getSource());
> -        Instruction *NewI
> -          = ReplaceInstUsesWith(AI, ConstantExpr::getBitCast(TheSrc,
> -                                                             AI.getType()));
> +        Constant *Cast
> +          = ConstantExpr::getPointerBitCastOrAddrSpaceCast(TheSrc, AI.getType());
> +        Instruction *NewI = ReplaceInstUsesWith(AI, Cast);
>          EraseInstFromFunction(*Copy);
>          ++NumGlobalCopies;
>          return NewI;
>
> Modified: llvm/branches/release_34/test/Transforms/InstCombine/addrspacecast.ll
> URL: http://llvm.org/viewvc/llvm-project/llvm/branches/release_34/test/Transforms/InstCombine/addrspacecast.ll?rev=196668&r1=196667&r2=196668&view=diff
> ==============================================================================
> --- llvm/branches/release_34/test/Transforms/InstCombine/addrspacecast.ll (original)
> +++ llvm/branches/release_34/test/Transforms/InstCombine/addrspacecast.ll Sat Dec  7 15:24:29 2013
> @@ -2,6 +2,12 @@
>
>  target datalayout = "e-p:64:64:64-p1:32:32:32-p2:16:16:16-n8:16:32:64"
>
> +
> +declare void @llvm.memcpy.p0i8.p0i8.i32(i8*, i8*, i32, i32, i1) nounwind
> +declare void @llvm.memcpy.p0i8.p1i8.i32(i8*, i8 addrspace(1)*, i32, i32, i1) nounwind
> +declare void @llvm.memcpy.p0i8.p2i8.i32(i8*, i8 addrspace(2)*, i32, i32, i1) nounwind
> +
> +
>  define i32* @combine_redundant_addrspacecast(i32 addrspace(1)* %x) nounwind {
>  ; CHECK-LABEL: @combine_redundant_addrspacecast(
>  ; CHECK: addrspacecast i32 addrspace(1)* %x to i32*
> @@ -29,3 +35,35 @@ define float* @combine_redundant_addrspa
>    ret float* %z
>  }
>
> + at const_array = addrspace(2) constant [60 x i8] [i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22,
> +                                                i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22,
> +                                                i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22,
> +                                                i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22,
> +                                                i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22, i8 2, i8 9, i8 4, i8 22 ]
> +
> +declare void @foo(i8*) nounwind
> +
> +; A copy from a constant addrspacecast'ed global
> +; CHECK-LABEL: @memcpy_addrspacecast(
> +; CHECK-NOT:  call void @llvm.memcpy
> +define i32 @memcpy_addrspacecast() nounwind {
> +entry:
> +  %alloca = alloca i8, i32 48
> +  call void @llvm.memcpy.p0i8.p1i8.i32(i8* %alloca, i8 addrspace(1)* addrspacecast (i8 addrspace(2)* getelementptr inbounds ([60 x i8] addrspace(2)* @const_array, i16 0, i16 4) to i8 addrspace(1)*), i32 48, i32 4, i1 false) nounwind
> +  br label %loop.body
> +
> +loop.body:
> +  %i = phi i32 [ 0, %entry ], [ %i.inc, %loop.body ]
> +  %sum = phi i32 [ 0, %entry ], [ %sum.inc, %loop.body]
> +  %ptr = getelementptr i8* %alloca, i32 %i
> +  %load = load i8* %ptr
> +  %ext = zext i8 %load to i32
> +  %sum.inc = add i32 %sum, %ext
> +  %i.inc = add i32 %i, 1
> +  %cmp = icmp ne i32 %i, 48
> +  br i1 %cmp, label %loop.body, label %end
> +
> +end:
> +  ret i32 %sum.inc
> +}
> +
>
>
> _______________________________________________
> llvm-branch-commits mailing list
> llvm-branch-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-branch-commits




More information about the llvm-branch-commits mailing list