summaryrefslogtreecommitdiff
path: root/unittests/Analysis/AliasSetTrackerTest.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-08-20 17:58:59 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-08-20 17:58:59 +0000
commit1a56a5ead7a2e84bee8240f5f6b033b5f1707154 (patch)
tree2f526c9cfcb089e51c33d6e1f0d51b10bda34714 /unittests/Analysis/AliasSetTrackerTest.cpp
parentd8e91e46262bc44006913e6796843909f1ac7bcd (diff)
Notes
Diffstat (limited to 'unittests/Analysis/AliasSetTrackerTest.cpp')
-rw-r--r--unittests/Analysis/AliasSetTrackerTest.cpp89
1 files changed, 0 insertions, 89 deletions
diff --git a/unittests/Analysis/AliasSetTrackerTest.cpp b/unittests/Analysis/AliasSetTrackerTest.cpp
deleted file mode 100644
index 57d21e2fcb86..000000000000
--- a/unittests/Analysis/AliasSetTrackerTest.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-//=======- AliasSetTrackerTest.cpp - Unit test for the Alias Set Tracker -===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Analysis/AliasAnalysis.h"
-#include "llvm/Analysis/AliasSetTracker.h"
-#include "llvm/Analysis/TypeBasedAliasAnalysis.h"
-#include "llvm/AsmParser/Parser.h"
-#include "llvm/IR/LLVMContext.h"
-#include "llvm/IR/Module.h"
-#include "llvm/Support/SourceMgr.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-TEST(AliasSetTracker, AliasUnknownInst) {
- StringRef Assembly = R"(
- @a = common global i32 0, align 4
- @b = common global float 0.000000e+00, align 4
-
- ; Function Attrs: nounwind ssp uwtable
- define i32 @read_a() #0 {
- %1 = load i32, i32* @a, align 4, !tbaa !3
- ret i32 %1
- }
-
- ; Function Attrs: nounwind ssp uwtable
- define void @write_b() #0 {
- store float 1.000000e+01, float* @b, align 4, !tbaa !7
- ret void
- }
-
- ; Function Attrs: nounwind ssp uwtable
- define void @test() #0 {
- %1 = call i32 @read_a(), !tbaa !3
- call void @write_b(), !tbaa !7
- ret void
- }
-
- !3 = !{!4, !4, i64 0}
- !4 = !{!"int", !5, i64 0}
- !5 = !{!"omnipotent char", !6, i64 0}
- !6 = !{!"Simple C/C++ TBAA"}
- !7 = !{!8, !8, i64 0}
- !8 = !{!"float", !5, i64 0}
- )";
-
- // Parse the IR. The two calls in @test can not access aliasing elements.
- LLVMContext Context;
- SMDiagnostic Error;
- auto M = parseAssemblyString(Assembly, Error, Context);
- ASSERT_TRUE(M) << "Bad assembly?";
-
- // Initialize the alias result.
- Triple Trip(M->getTargetTriple());
- TargetLibraryInfoImpl TLII(Trip);
- TargetLibraryInfo TLI(TLII);
- AAResults AA(TLI);
- TypeBasedAAResult TBAAR;
- AA.addAAResult(TBAAR);
-
- // Initialize the alias set tracker for the @test function.
- Function *Test = M->getFunction("test");
- ASSERT_NE(Test, nullptr);
- AliasSetTracker AST(AA);
- for (auto &BB : *Test)
- AST.add(BB);
- // There should be 2 disjoint alias sets. 1 from each call.
- ASSERT_EQ((int)AST.getAliasSets().size(), 2);
-
- // Directly test aliasesUnknownInst.
- // Now every call instruction should only alias one alias set.
- for (auto &Inst : *Test->begin()) {
- bool FoundAS = false;
- for (AliasSet &AS : AST) {
- if (!Inst.mayReadOrWriteMemory())
- continue;
- if (!AS.aliasesUnknownInst(&Inst, AA))
- continue;
- ASSERT_NE(FoundAS, true);
- FoundAS = true;
- }
- }
-}