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

Bill Wendling isanbard at gmail.com
Sat Dec 7 16:27:58 PST 2013


Done. Thanks!

-bw

On Dec 7, 2013, at 4:10 PM, NAKAMURA Takumi <geek4civic at gmail.com> wrote:

> 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
> 
> _______________________________________________
> 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