#include "llvm/Analysis/FunctionPropertiesAnalysis.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/AsmParser/Parser.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/PassManager.h"
#include "llvm/Passes/PassBuilder.h"
#include "llvm/Passes/StandardInstrumentations.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Transforms/Utils/Cloning.h"
#include "gtest/gtest.h"
#include <cstring>
usingnamespacellvm;
namespace llvm {
extern cl::opt<bool> EnableDetailedFunctionProperties;
extern cl::opt<bool> BigBasicBlockInstructionThreshold;
extern cl::opt<bool> MediumBasicBlockInstrutionThreshold;
}
namespace {
class FunctionPropertiesAnalysisTest : public testing::Test { … };
TEST_F(FunctionPropertiesAnalysisTest, BasicTest) { … }
TEST_F(FunctionPropertiesAnalysisTest, DifferentPredecessorSuccessorCounts) { … }
TEST_F(FunctionPropertiesAnalysisTest, InlineSameBBSimple) { … }
TEST_F(FunctionPropertiesAnalysisTest, InlineSameBBLargerCFG) { … }
TEST_F(FunctionPropertiesAnalysisTest, InlineSameBBLoops) { … }
TEST_F(FunctionPropertiesAnalysisTest, InvokeSimple) { … }
TEST_F(FunctionPropertiesAnalysisTest, InvokeUnreachableHandler) { … }
TEST_F(FunctionPropertiesAnalysisTest, Rethrow) { … }
TEST_F(FunctionPropertiesAnalysisTest, LPadChanges) { … }
TEST_F(FunctionPropertiesAnalysisTest, LPadChangesConditional) { … }
TEST_F(FunctionPropertiesAnalysisTest, InlineSameLoopBB) { … }
TEST_F(FunctionPropertiesAnalysisTest, Unreachable) { … }
TEST_F(FunctionPropertiesAnalysisTest, InvokeSkipLP) { … }
TEST_F(FunctionPropertiesAnalysisTest, DetailedOperandCount) { … }
TEST_F(FunctionPropertiesAnalysisTest, IntrinsicCount) { … }
TEST_F(FunctionPropertiesAnalysisTest, FunctionCallMetrics) { … }
TEST_F(FunctionPropertiesAnalysisTest, CriticalEdge) { … }
TEST_F(FunctionPropertiesAnalysisTest, FunctionReturnVectors) { … }
TEST_F(FunctionPropertiesAnalysisTest, ReAddEdges) { … }
TEST_F(FunctionPropertiesAnalysisTest, InvokeLandingCanStillBeReached) { … }
}