Index: lib/Analysis/DependenceAnalysis.cpp =================================================================== --- lib/Analysis/DependenceAnalysis.cpp +++ lib/Analysis/DependenceAnalysis.cpp @@ -626,8 +626,7 @@ const Value *B) { const Value *AObj = GetUnderlyingObject(A, DL); const Value *BObj = GetUnderlyingObject(B, DL); - return AA->alias(AObj, DL.getTypeStoreSize(AObj->getType()), - BObj, DL.getTypeStoreSize(BObj->getType())); + return AA->alias(AObj, BObj); } Index: test/Analysis/DependenceAnalysis/AASize.ll =================================================================== --- /dev/null +++ test/Analysis/DependenceAnalysis/AASize.ll @@ -0,0 +1,19 @@ +; RUN: opt < %s -analyze -basicaa -da | FileCheck %s + +; CHECK-LABEL: test +; CHECK: da analyze - none! +; CHECK: da analyze - confused! +; CHECK: da analyze - none! +; CHECK: da analyze - none! +; CHECK: da analyze - confused! +; CHECK: da analyze - none! + +@a = global i16 5, align 2 +@b = global i16* @a, align 4 +define void @test2() { +entry: + %0 = load i16*, i16** @b, align 4 + %1 = load i16, i16* %0, align 2 + store i16 1, i16* @a, align 2 + ret void +}