mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
[PM] (NFC) Split the IR parsing into a fixture so that I can split out
more testing into other test routines while using the same core module. llvm-svn: 280446
This commit is contained in:
parent
a24c77d404
commit
262ae59dce
@ -158,39 +158,48 @@ std::unique_ptr<Module> parseIR(const char *IR) {
|
||||
return parseAssemblyString(IR, Err, C);
|
||||
}
|
||||
|
||||
TEST(CGSCCPassManagerTest, Basic) {
|
||||
auto M = parseIR("define void @f() {\n"
|
||||
"entry:\n"
|
||||
" call void @g()\n"
|
||||
" call void @h1()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @g() {\n"
|
||||
"entry:\n"
|
||||
" call void @g()\n"
|
||||
" call void @x()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @h1() {\n"
|
||||
"entry:\n"
|
||||
" call void @h2()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @h2() {\n"
|
||||
"entry:\n"
|
||||
" call void @h3()\n"
|
||||
" call void @x()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @h3() {\n"
|
||||
"entry:\n"
|
||||
" call void @h1()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @x() {\n"
|
||||
"entry:\n"
|
||||
" ret void\n"
|
||||
"}\n");
|
||||
class CGSCCPassManagerTest : public ::testing::Test {
|
||||
protected:
|
||||
LLVMContext Context;
|
||||
std::unique_ptr<Module> M;
|
||||
|
||||
public:
|
||||
CGSCCPassManagerTest()
|
||||
: M(parseIR("define void @f() {\n"
|
||||
"entry:\n"
|
||||
" call void @g()\n"
|
||||
" call void @h1()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @g() {\n"
|
||||
"entry:\n"
|
||||
" call void @g()\n"
|
||||
" call void @x()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @h1() {\n"
|
||||
"entry:\n"
|
||||
" call void @h2()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @h2() {\n"
|
||||
"entry:\n"
|
||||
" call void @h3()\n"
|
||||
" call void @x()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @h3() {\n"
|
||||
"entry:\n"
|
||||
" call void @h1()\n"
|
||||
" ret void\n"
|
||||
"}\n"
|
||||
"define void @x() {\n"
|
||||
"entry:\n"
|
||||
" ret void\n"
|
||||
"}\n")) {}
|
||||
};
|
||||
|
||||
TEST_F(CGSCCPassManagerTest, Basic) {
|
||||
FunctionAnalysisManager FAM(/*DebugLogging*/ true);
|
||||
int FunctionAnalysisRuns = 0;
|
||||
FAM.registerPass([&] { return TestFunctionAnalysis(FunctionAnalysisRuns); });
|
||||
|
Loading…
Reference in New Issue
Block a user