diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp --- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp +++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp @@ -68,15 +68,6 @@ static cl::opt EnableRecPhiAnalysis("basic-aa-recphi", cl::Hidden, cl::init(true)); -/// By default, even on 32-bit architectures we use 64-bit integers for -/// calculations. This will allow us to more-aggressively decompose indexing -/// expressions calculated using i64 values (e.g., long long in C) which is -/// common enough to worry about. -static cl::opt ForceAtLeast64Bits("basic-aa-force-at-least-64b", - cl::Hidden, cl::init(true)); -static cl::opt DoubleCalcBits("basic-aa-double-calc-bits", - cl::Hidden, cl::init(false)); - /// SearchLimitReached / SearchTimes shows how often the limit of /// to decompose GEPs is reached. It will affect the precision /// of basic alias analysis. @@ -459,14 +450,6 @@ return (Offset << ShiftBits).ashr(ShiftBits); } -static unsigned getMaxPointerSize(const DataLayout &DL) { - unsigned MaxPointerSize = DL.getMaxPointerSizeInBits(); - if (MaxPointerSize < 64 && ForceAtLeast64Bits) MaxPointerSize = 64; - if (DoubleCalcBits) MaxPointerSize *= 2; - - return MaxPointerSize; -} - namespace { // A linear transformation of a Value; this class represents // ZExt(SExt(V, SExtBits), ZExtBits) * Scale. @@ -547,7 +530,7 @@ SearchTimes++; const Instruction *CxtI = dyn_cast(V); - unsigned MaxPointerSize = getMaxPointerSize(DL); + unsigned MaxPointerSize = DL.getMaxPointerSizeInBits(); DecomposedGEP Decomposed; Decomposed.Offset = APInt(MaxPointerSize, 0); Decomposed.HasCompileTimeConstantScale = true; diff --git a/llvm/test/Analysis/BasicAA/gep-and-alias.ll b/llvm/test/Analysis/BasicAA/gep-and-alias.ll --- a/llvm/test/Analysis/BasicAA/gep-and-alias.ll +++ b/llvm/test/Analysis/BasicAA/gep-and-alias.ll @@ -1,5 +1,4 @@ ; RUN: opt -S -basic-aa -gvn < %s | FileCheck %s -; RUN: opt -S -basic-aa -gvn -basic-aa-force-at-least-64b=0 < %s | FileCheck %s target datalayout = "e-m:o-p:32:32-f64:32:64-f80:128-n8:16:32-S128" target triple = "i386-apple-macosx10.6.0" diff --git a/llvm/test/Analysis/BasicAA/gep-implicit-trunc-32-bit-pointers.ll b/llvm/test/Analysis/BasicAA/gep-implicit-trunc-32-bit-pointers.ll --- a/llvm/test/Analysis/BasicAA/gep-implicit-trunc-32-bit-pointers.ll +++ b/llvm/test/Analysis/BasicAA/gep-implicit-trunc-32-bit-pointers.ll @@ -20,10 +20,9 @@ ret void } -; FIXME: This should also be MustAlias as in the previous test. define void @mustalias_overflow_in_32_with_var_index([1 x i8]* %ptr, i64 %n) { ; CHECK-LABEL: Function: mustalias_overflow_in_32_with_var_index -; CHECK: NoAlias: i8* %gep.1, i8* %gep.2 +; CHECK: MustAlias: i8* %gep.1, i8* %gep.2 ; %gep.1 = getelementptr [1 x i8], [1 x i8]* %ptr, i64 %n, i64 4294967296 store i8 0, i8* %gep.1