[llvm-commits] [llvm] r168280 - in /llvm/trunk: lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp test/Transforms/InstCombine/alloca.ll

32bitmicro root at 32bitmicro.com
Wed Nov 21 16:49:38 PST 2012


> This one-line fix is safe, and is a regression from 3.1. Please integrate
> this into the 3.2 branch.

Committed revision 168480.


> 
> On 17 November 2012 21:39, Nick Lewycky <nicholas at mxc.ca> wrote:
> 
>> Author: nicholas
>> Date: Sat Nov 17 23:39:39 2012
>> New Revision: 168280
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=168280&view=rev
>> Log:
>> Don't try to calculate the alignment of an unsigned type. Fixes PR14371!
>>
>> Modified:
>>     llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
>>     llvm/trunk/test/Transforms/InstCombine/alloca.ll
>>
>> Modified:
>> llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp?rev=168280&r1=168279&r2=168280&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
>> (original)
>> +++ llvm/trunk/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
>> Sat Nov 17 23:39:39 2012
>> @@ -164,7 +164,8 @@
>>        return TD.getPreferredAlignment(GV);
>>
>>    if (PointerType *PT = dyn_cast<PointerType>(V->getType()))
>> -    return TD.getABITypeAlignment(PT->getElementType());
>> +    if (PT->getElementType()->isSized())
>> +      return TD.getABITypeAlignment(PT->getElementType());
>>
>>    return 0;
>>  }
>>
>> Modified: llvm/trunk/test/Transforms/InstCombine/alloca.ll
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/alloca.ll?rev=168280&r1=168279&r2=168280&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/test/Transforms/InstCombine/alloca.ll (original)
>> +++ llvm/trunk/test/Transforms/InstCombine/alloca.ll Sat Nov 17 23:39:39
>> 2012
>> @@ -94,3 +94,19 @@
>>    tail call void @f(i32* %b)
>>    ret void
>>  }
>> +
>> +; PR14371
>> +%opaque_type = type opaque
>> +%real_type = type { { i32, i32* } }
>> +
>> + at opaque_global = external constant %opaque_type, align 4
>> +
>> +define void @test7() {
>> +entry:
>> +  %0 = alloca %real_type, align 4
>> +  %1 = bitcast %real_type* %0 to i8*
>> +  call void @llvm.memcpy.p0i8.p0i8.i32(i8* %1, i8* bitcast (%opaque_type*
>> @opaque_global to i8*), i32 8, i32 1, i1 false)
>> +  ret void
>> +}
>> +
>> +declare void @llvm.memcpy.p0i8.p0i8.i32(i8* nocapture, i8* nocapture,
>> i32, i32, i1) nounwind
>>
>>
>> _______________________________________________
>> 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