//===- llvm/unittest/Transforms/IPO/AttributorTestBase.h -----------------===// // // 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 // //===----------------------------------------------------------------------===// /// \file /// This file defines an AttributorTestBase class, which provides helpers to /// parse a LLVM IR string and create Attributor //===----------------------------------------------------------------------===// #ifndef LLVM_UNITTESTS_TRANSFORMS_ATTRIBUTOR_TESTBASE_H #define LLVM_UNITTESTS_TRANSFORMS_ATTRIBUTOR_TESTBASE_H #include "llvm/Analysis/CGSCCPassManager.h" #include "llvm/Analysis/CallGraphSCCPass.h" #include "llvm/AsmParser/Parser.h" #include "llvm/IR/Module.h" #include "llvm/IR/PassManager.h" #include "llvm/Support/Allocator.h" #include "llvm/Support/SourceMgr.h" #include "llvm/Testing/Support/Error.h" #include "llvm/Transforms/IPO/Attributor.h" #include "llvm/Transforms/Utils/CallGraphUpdater.h" #include "gtest/gtest.h" #include namespace llvm { /// Helper class to create a module from assembly string and an Attributor class AttributorTestBase : public testing::Test { protected: std::unique_ptr Ctx; std::unique_ptr M; AttributorTestBase() : Ctx(new LLVMContext) {} Module &parseModule(const char *ModuleString) { SMDiagnostic Err; M = parseAssemblyString(ModuleString, Err, *Ctx); EXPECT_TRUE(M); return *M; } }; } // namespace llvm #endif