diff options
| author | Chris Lattner <sabre@nondot.org> | 2003-02-28 19:21:40 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2003-02-28 19:21:40 +0000 |
| commit | e19a9f8ef768516f27a625a0406732fc6eda6d83 (patch) | |
| tree | c93bb36abb868cd2f4cda328da8dab1945996624 /llvm | |
| parent | 91fe502573e6598ea62dfbf3d95058f8cfa328af (diff) | |
| download | bcm5719-llvm-e19a9f8ef768516f27a625a0406732fc6eda6d83.tar.gz bcm5719-llvm-e19a9f8ef768516f27a625a0406732fc6eda6d83.zip | |
Fix bug: LICM/2003-02-28-PromoteDifferentType.ll
llvm-svn: 5675
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LICM.cpp | 10 |
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; } |

