#include "llvm/Analysis/AssumptionCache.h"
#include "llvm/Analysis/BlockFrequencyInfo.h"
#include "llvm/Analysis/BranchProbabilityInfo.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/Analysis/PostDominators.h"
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/AsmParser/Parser.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/PassInstrumentation.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Transforms/IPO/FunctionSpecialization.h"
#include "llvm/Transforms/Utils/SCCPSolver.h"
#include "gtest/gtest.h"
#include <memory>
namespace llvm {
static void removeSSACopy(Function &F) { … }
class FunctionSpecializationTest : public testing::Test { … };
}
usingnamespacellvm;
TEST_F(FunctionSpecializationTest, SwitchInst) { … }
TEST_F(FunctionSpecializationTest, BranchInst) { … }
TEST_F(FunctionSpecializationTest, SelectInst) { … }
TEST_F(FunctionSpecializationTest, Misc) { … }
TEST_F(FunctionSpecializationTest, PhiNode) { … }