diff options
author | Eric Christopher <echristo@apple.com> | 2010-07-29 01:25:38 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2010-07-29 01:25:38 +0000 |
commit | e6cbfa6b09e3e9ddf18449d1b64793e24af27c6b (patch) | |
tree | dabe5eaa423f43afe5d1419cddf43a7c626a9884 /unittests/Analysis/ScalarEvolutionTest.cpp | |
parent | d9082dfd9ab442dd33f552693fcc0f396a514bb6 (diff) |
Speculatively revert r109705 since it seems to be causing some build bot
angst.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109718 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'unittests/Analysis/ScalarEvolutionTest.cpp')
-rw-r--r-- | unittests/Analysis/ScalarEvolutionTest.cpp | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/unittests/Analysis/ScalarEvolutionTest.cpp b/unittests/Analysis/ScalarEvolutionTest.cpp deleted file mode 100644 index 19bf90f073..0000000000 --- a/unittests/Analysis/ScalarEvolutionTest.cpp +++ /dev/null @@ -1,78 +0,0 @@ -//===- ScalarEvolutionsTest.cpp - ScalarEvolution unit tests --------------===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// - -#include <llvm/Analysis/ScalarEvolutionExpressions.h> -#include <llvm/GlobalVariable.h> -#include <llvm/Constants.h> -#include <llvm/LLVMContext.h> -#include <llvm/Module.h> -#include <llvm/PassManager.h> -#include "gtest/gtest.h" - -namespace llvm { -namespace { - -TEST(ScalarEvolutionsTest, ReturnInst) { - LLVMContext Context; - Module M("world", Context); - - const FunctionType *FTy = FunctionType::get(Type::getVoidTy(Context), - std::vector<const Type *>(), false); - Function *F = cast<Function>(M.getOrInsertFunction("f", FTy)); - BasicBlock *BB = BasicBlock::Create(Context, "entry", F); - ReturnInst::Create(Context, 0, BB); - - const Type *Ty = Type::getInt1Ty(Context); - Constant *Init = Constant::getNullValue(Ty); - Value *V0 = new GlobalVariable(M, Ty, false, GlobalValue::ExternalLinkage, Init, "V0"); - Value *V1 = new GlobalVariable(M, Ty, false, GlobalValue::ExternalLinkage, Init, "V1"); - Value *V2 = new GlobalVariable(M, Ty, false, GlobalValue::ExternalLinkage, Init, "V2"); - - // Create a ScalarEvolution and "run" it so that it gets initialized. - PassManager PM; - ScalarEvolution &SE = *new ScalarEvolution(); - PM.add(&SE); - PM.run(M); - - const SCEV *S0 = SE.getSCEV(V0); - const SCEV *S1 = SE.getSCEV(V1); - const SCEV *S2 = SE.getSCEV(V2); - - const SCEV *P0 = SE.getAddExpr(S0, S0); - const SCEV *P1 = SE.getAddExpr(S1, S1); - const SCEV *P2 = SE.getAddExpr(S2, S2); - - const SCEVMulExpr *M0 = cast<SCEVMulExpr>(P0); - const SCEVMulExpr *M1 = cast<SCEVMulExpr>(P1); - const SCEVMulExpr *M2 = cast<SCEVMulExpr>(P2); - - EXPECT_EQ(cast<SCEVConstant>(M0->getOperand(0))->getValue()->getZExtValue(), - 2u); - EXPECT_EQ(cast<SCEVConstant>(M1->getOperand(0))->getValue()->getZExtValue(), - 2u); - EXPECT_EQ(cast<SCEVConstant>(M2->getOperand(0))->getValue()->getZExtValue(), - 2u); - - // Before the RAUWs, these are all pointing to separate values. - EXPECT_EQ(cast<SCEVUnknown>(M0->getOperand(1))->getValue(), V0); - EXPECT_EQ(cast<SCEVUnknown>(M1->getOperand(1))->getValue(), V1); - EXPECT_EQ(cast<SCEVUnknown>(M2->getOperand(1))->getValue(), V2); - - // Do some RAUWs. - V2->replaceAllUsesWith(V1); - V1->replaceAllUsesWith(V0); - - // After the RAUWs, these should all be pointing to V0. - EXPECT_EQ(cast<SCEVUnknown>(M0->getOperand(1))->getValue(), V0); - EXPECT_EQ(cast<SCEVUnknown>(M1->getOperand(1))->getValue(), V0); - EXPECT_EQ(cast<SCEVUnknown>(M2->getOperand(1))->getValue(), V0); -} - -} // end anonymous namespace -} // end namespace llvm |