[llvm-commits] [llvm] r168280 - in /llvm/trunk: lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp test/Transforms/InstCombine/alloca.ll
32bitmicro
root at 32bitmicro.com
Sat Nov 17 21:52:57 PST 2012
Nick,
> This one-line fix is safe, and is a regression from 3.1. Please integrate
> this into the 3.2 branch.
I trust it is safe but I need this change to be approved by
the code owner. I will enqueue it for now.
Pawel
>
> 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