diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:01:25 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2019-01-19 10:01:25 +0000 |
| commit | d8e91e46262bc44006913e6796843909f1ac7bcd (patch) | |
| tree | 7d0c143d9b38190e0fa0180805389da22cd834c5 /unittests/Transforms/Utils/CodeExtractor.cpp | |
| parent | b7eb8e35e481a74962664b63dfb09483b200209a (diff) | |
Notes
Diffstat (limited to 'unittests/Transforms/Utils/CodeExtractor.cpp')
| -rw-r--r-- | unittests/Transforms/Utils/CodeExtractor.cpp | 69 |
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 |
