summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Transforms
diff options
context:
space:
mode:
authorMax Kazantsev <max.kazantsev@azul.com>2018-08-30 04:49:03 +0000
committerMax Kazantsev <max.kazantsev@azul.com>2018-08-30 04:49:03 +0000
commitd3a4cbe1537775ec89b4d4326f63bfdb6d53d903 (patch)
treebf2fdb8cb3ce7eb6c26bef2f2c558395f18c11fe /llvm/unittests/Transforms
parent3c284bde3fc02a5402cb40f2df95508d591598b2 (diff)
downloadbcm5719-llvm-d3a4cbe1537775ec89b4d4326f63bfdb6d53d903.tar.gz
bcm5719-llvm-d3a4cbe1537775ec89b4d4326f63bfdb6d53d903.zip
[NFC] Move OrderedInstructions and InstructionPrecedenceTracking to Analysis
These classes don't make any changes to IR and have no reason to be in Transform/Utils. This patch moves them to Analysis folder. This will allow us reusing these classes in some analyzes, like MustExecute. llvm-svn: 341015
Diffstat (limited to 'llvm/unittests/Transforms')
-rw-r--r--llvm/unittests/Transforms/Utils/CMakeLists.txt1
-rw-r--r--llvm/unittests/Transforms/Utils/OrderedInstructions.cpp65
2 files changed, 0 insertions, 66 deletions
diff --git a/llvm/unittests/Transforms/Utils/CMakeLists.txt b/llvm/unittests/Transforms/Utils/CMakeLists.txt
index 9781b0aaedb..7b36521f774 100644
--- a/llvm/unittests/Transforms/Utils/CMakeLists.txt
+++ b/llvm/unittests/Transforms/Utils/CMakeLists.txt
@@ -14,7 +14,6 @@ add_llvm_unittest(UtilsTests
FunctionComparator.cpp
IntegerDivision.cpp
Local.cpp
- OrderedInstructions.cpp
SSAUpdaterBulk.cpp
ValueMapperTest.cpp
)
diff --git a/llvm/unittests/Transforms/Utils/OrderedInstructions.cpp b/llvm/unittests/Transforms/Utils/OrderedInstructions.cpp
deleted file mode 100644
index 1d6df172294..00000000000
--- a/llvm/unittests/Transforms/Utils/OrderedInstructions.cpp
+++ /dev/null
@@ -1,65 +0,0 @@
-//===- OrderedInstructions.cpp - Unit tests for OrderedInstructions ------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Transforms/Utils/OrderedInstructions.h"
-#include "llvm/IR/BasicBlock.h"
-#include "llvm/IR/Dominators.h"
-#include "llvm/IR/IRBuilder.h"
-#include "llvm/IR/Instructions.h"
-#include "llvm/IR/LLVMContext.h"
-#include "llvm/IR/Module.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-/// Check intra-basicblock and inter-basicblock dominance using
-/// OrderedInstruction.
-TEST(OrderedInstructionsTest, DominanceTest) {
- LLVMContext Ctx;
- Module M("test", Ctx);
- IRBuilder<> B(Ctx);
- FunctionType *FTy =
- FunctionType::get(Type::getVoidTy(Ctx), {B.getInt8PtrTy()}, false);
- Function *F = cast<Function>(M.getOrInsertFunction("f", FTy));
-
- // Create the function as follow and check for dominance relation.
- //
- // test():
- // bbx:
- // loadx;
- // loady;
- // bby:
- // loadz;
- // return;
- //
- // More specifically, check for loadx -> (dominates) loady,
- // loady -> loadx and loady -> loadz.
- //
- // Create BBX with 2 loads.
- BasicBlock *BBX = BasicBlock::Create(Ctx, "bbx", F);
- B.SetInsertPoint(BBX);
- Argument *PointerArg = &*F->arg_begin();
- LoadInst *LoadInstX = B.CreateLoad(PointerArg);
- LoadInst *LoadInstY = B.CreateLoad(PointerArg);
-
- // Create BBY with 1 load.
- BasicBlock *BBY = BasicBlock::Create(Ctx, "bby", F);
- B.SetInsertPoint(BBY);
- LoadInst *LoadInstZ = B.CreateLoad(PointerArg);
- B.CreateRet(LoadInstZ);
- std::unique_ptr<DominatorTree> DT(new DominatorTree(*F));
- OrderedInstructions OI(&*DT);
-
- // Intra-BB dominance test.
- EXPECT_TRUE(OI.dominates(LoadInstX, LoadInstY));
- EXPECT_FALSE(OI.dominates(LoadInstY, LoadInstX));
-
- // Inter-BB dominance test.
- EXPECT_TRUE(OI.dominates(LoadInstY, LoadInstZ));
-}
OpenPOWER on IntegriCloud