summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2003-02-28 19:21:40 +0000
committerChris Lattner <sabre@nondot.org>2003-02-28 19:21:40 +0000
commite19a9f8ef768516f27a625a0406732fc6eda6d83 (patch)
treec93bb36abb868cd2f4cda328da8dab1945996624 /llvm/lib/Transforms
parent91fe502573e6598ea62dfbf3d95058f8cfa328af (diff)
downloadbcm5719-llvm-e19a9f8ef768516f27a625a0406732fc6eda6d83.tar.gz
bcm5719-llvm-e19a9f8ef768516f27a625a0406732fc6eda6d83.zip
Fix bug: LICM/2003-02-28-PromoteDifferentType.ll
llvm-svn: 5675
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r--llvm/lib/Transforms/Scalar/LICM.cpp10
1 files changed, 8 insertions, 2 deletions
diff --git a/llvm/lib/Transforms/Scalar/LICM.cpp b/llvm/lib/Transforms/Scalar/LICM.cpp
index 534a073abe1..334ede39d98 100644
--- a/llvm/lib/Transforms/Scalar/LICM.cpp
+++ b/llvm/lib/Transforms/Scalar/LICM.cpp
@@ -487,9 +487,15 @@ void LICM::findPromotableValuesInLoop(
bool PointerOk = true;
for (std::set<Value*>::const_iterator I =CurLBI->LoadedPointers.begin(),
- E = CurLBI->LoadedPointers.end(); I != E; ++I)
- if (AA->alias(V, ~0, *I, ~0) == AliasAnalysis::MayAlias) {
+ E = CurLBI->LoadedPointers.end(); PointerOk && I != E; ++I)
+ switch (AA->alias(V, ~0, *I, ~0)) {
+ case AliasAnalysis::MustAlias:
+ if (V->getType() != (*I)->getType())
+ PointerOk = false;
+ break;
+ case AliasAnalysis::MayAlias:
PointerOk = false;
+ case AliasAnalysis::NoAlias:
break;
}
OpenPOWER on IntegriCloud