summaryrefslogtreecommitdiff
path: root/unittests/Transforms/Utils/CodeExtractor.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-01-19 10:01:25 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-01-19 10:01:25 +0000
commitd8e91e46262bc44006913e6796843909f1ac7bcd (patch)
tree7d0c143d9b38190e0fa0180805389da22cd834c5 /unittests/Transforms/Utils/CodeExtractor.cpp
parentb7eb8e35e481a74962664b63dfb09483b200209a (diff)
Notes
Diffstat (limited to 'unittests/Transforms/Utils/CodeExtractor.cpp')
-rw-r--r--unittests/Transforms/Utils/CodeExtractor.cpp69
1 files changed, 0 insertions, 69 deletions
diff --git a/unittests/Transforms/Utils/CodeExtractor.cpp b/unittests/Transforms/Utils/CodeExtractor.cpp
deleted file mode 100644
index c229be6d6952..000000000000
--- a/unittests/Transforms/Utils/CodeExtractor.cpp
+++ /dev/null
@@ -1,69 +0,0 @@
-//===- CodeExtractor.cpp - Unit tests for CodeExtractor -------------------===//
-//
-// 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/CodeExtractor.h"
-#include "llvm/AsmParser/Parser.h"
-#include "llvm/IR/BasicBlock.h"
-#include "llvm/IR/Dominators.h"
-#include "llvm/IR/LLVMContext.h"
-#include "llvm/IR/Module.h"
-#include "llvm/IR/Verifier.h"
-#include "llvm/IRReader/IRReader.h"
-#include "llvm/Support/SourceMgr.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-namespace {
-TEST(CodeExtractor, ExitStub) {
- LLVMContext Ctx;
- SMDiagnostic Err;
- std::unique_ptr<Module> M(parseAssemblyString(R"invalid(
- define i32 @foo(i32 %x, i32 %y, i32 %z) {
- header:
- %0 = icmp ugt i32 %x, %y
- br i1 %0, label %body1, label %body2
-
- body1:
- %1 = add i32 %z, 2
- br label %notExtracted
-
- body2:
- %2 = mul i32 %z, 7
- br label %notExtracted
-
- notExtracted:
- %3 = phi i32 [ %1, %body1 ], [ %2, %body2 ]
- %4 = add i32 %3, %x
- ret i32 %4
- }
- )invalid",
- Err, Ctx));
-
- Function *Func = M->getFunction("foo");
- SmallVector<BasicBlock *, 3> Candidates;
- for (auto &BB : *Func) {
- if (BB.getName() == "body1")
- Candidates.push_back(&BB);
- if (BB.getName() == "body2")
- Candidates.push_back(&BB);
- }
- // CodeExtractor requires the first basic block
- // to dominate all the other ones.
- Candidates.insert(Candidates.begin(), &Func->getEntryBlock());
-
- DominatorTree DT(*Func);
- CodeExtractor CE(Candidates, &DT);
- EXPECT_TRUE(CE.isEligible());
-
- Function *Outlined = CE.extractCodeRegion();
- EXPECT_TRUE(Outlined);
- EXPECT_FALSE(verifyFunction(*Outlined));
-}
-} // end anonymous namespace