diff options
author | Whitney Tsang <whitneyt@ca.ibm.com> | 2019-12-17 03:50:03 +0000 |
---|---|---|
committer | Whitney Tsang <whitneyt@ca.ibm.com> | 2019-12-17 03:51:41 +0000 |
commit | ec4749e3b8d0366b11eb01d513608a823871f58e (patch) | |
tree | 90fb43ca227b5fbc214d04d9042bf481553b4d10 /llvm/unittests/Transforms/Utils | |
parent | 0bc3336ac168f52b6a6e3297a9cc3eb579f047f4 (diff) | |
download | bcm5719-llvm-ec4749e3b8d0366b11eb01d513608a823871f58e.tar.gz bcm5719-llvm-ec4749e3b8d0366b11eb01d513608a823871f58e.zip |
Revert "[LoopUtils] Updated deleteDeadLoop() to handle loop nest."
This reverts commit cd09fee3d63296dd2df0bbb1fae363ca9f311d44.
This reverts commit c066ff11d84a7797503ad5a44c4129136926dc85.
Diffstat (limited to 'llvm/unittests/Transforms/Utils')
-rw-r--r-- | llvm/unittests/Transforms/Utils/CMakeLists.txt | 1 | ||||
-rw-r--r-- | llvm/unittests/Transforms/Utils/LoopUtilsTest.cpp | 90 |
2 files changed, 0 insertions, 91 deletions
diff --git a/llvm/unittests/Transforms/Utils/CMakeLists.txt b/llvm/unittests/Transforms/Utils/CMakeLists.txt index 424f09025ea..5a8204cb86a 100644 --- a/llvm/unittests/Transforms/Utils/CMakeLists.txt +++ b/llvm/unittests/Transforms/Utils/CMakeLists.txt @@ -15,7 +15,6 @@ add_llvm_unittest(UtilsTests FunctionComparatorTest.cpp IntegerDivisionTest.cpp LocalTest.cpp - LoopUtilsTest.cpp SizeOptsTest.cpp SSAUpdaterBulkTest.cpp UnrollLoopTest.cpp diff --git a/llvm/unittests/Transforms/Utils/LoopUtilsTest.cpp b/llvm/unittests/Transforms/Utils/LoopUtilsTest.cpp deleted file mode 100644 index 35fd97a50d0..00000000000 --- a/llvm/unittests/Transforms/Utils/LoopUtilsTest.cpp +++ /dev/null @@ -1,90 +0,0 @@ -//===- LoopUtilsTest.cpp - Unit tests for LoopUtils -----------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// - -#include "llvm/Transforms/Utils/LoopUtils.h" -#include "llvm/AsmParser/Parser.h" -#include "llvm/Support/SourceMgr.h" -#include "gtest/gtest.h" - -using namespace llvm; - -static std::unique_ptr<Module> parseIR(LLVMContext &C, const char *IR) { - SMDiagnostic Err; - std::unique_ptr<Module> Mod = parseAssemblyString(IR, Err, C); - if (!Mod) - Err.print("LoopUtilsTests", errs()); - return Mod; -} - -static void run(Module &M, StringRef FuncName, - function_ref<void(Function &F, DominatorTree &DT, - ScalarEvolution &SE, LoopInfo &LI)> - Test) { - Function *F = M.getFunction(FuncName); - DominatorTree DT(*F); - TargetLibraryInfoImpl TLII; - TargetLibraryInfo TLI(TLII); - AssumptionCache AC(*F); - LoopInfo LI(DT); - ScalarEvolution SE(*F, TLI, AC, DT, LI); - Test(*F, DT, SE, LI); -} - -TEST(LoopUtils, DeleteDeadLoopNest) { - LLVMContext C; - std::unique_ptr<Module> M = - parseIR(C, "define void @foo() {\n" - "entry:\n" - " br label %for.i\n" - "for.i:\n" - " %i = phi i64 [ 0, %entry ], [ %inc.i, %for.i.latch ]\n" - " br label %for.j\n" - "for.j:\n" - " %j = phi i64 [ 0, %for.i ], [ %inc.j, %for.j ]\n" - " %inc.j = add nsw i64 %j, 1\n" - " %cmp.j = icmp slt i64 %inc.j, 100\n" - " br i1 %cmp.j, label %for.j, label %for.k.preheader\n" - "for.k.preheader:\n" - " br label %for.k\n" - "for.k:\n" - " %k = phi i64 [ %inc.k, %for.k ], [ 0, %for.k.preheader ]\n" - " %inc.k = add nsw i64 %k, 1\n" - " %cmp.k = icmp slt i64 %inc.k, 100\n" - " br i1 %cmp.k, label %for.k, label %for.i.latch\n" - "for.i.latch:\n" - " %inc.i = add nsw i64 %i, 1\n" - " %cmp.i = icmp slt i64 %inc.i, 100\n" - " br i1 %cmp.i, label %for.i, label %for.end\n" - "for.end:\n" - " ret void\n" - "}\n"); - - run(*M, "foo", - [&](Function &F, DominatorTree &DT, ScalarEvolution &SE, LoopInfo &LI) { - assert(LI.begin() != LI.end() && "Expecting loops in function F"); - Loop *L = *LI.begin(); - assert(L && L->getName() == "for.i" && "Expecting loop for.i"); - - deleteDeadLoop(L, &DT, &SE, &LI); - - assert(DT.verify(DominatorTree::VerificationLevel::Fast) && - "Expecting valid dominator tree"); - LI.verify(DT); - assert(LI.begin() == LI.end() && - "Expecting no loops left in function F"); - SE.verify(); - - Function::iterator FI = F.begin(); - BasicBlock *Entry = &*(FI++); - assert(Entry->getName() == "entry" && "Expecting BasicBlock entry"); - const BranchInst *BI = dyn_cast<BranchInst>(Entry->getTerminator()); - assert(BI && "Expecting valid branch instruction"); - EXPECT_EQ(BI->getNumSuccessors(), (unsigned)1); - EXPECT_EQ(BI->getSuccessor(0)->getName(), "for.end"); - }); -} |