-
Notifications
You must be signed in to change notification settings - Fork 3
/
FuncInfoAbstract.h
89 lines (76 loc) · 2.61 KB
/
FuncInfoAbstract.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
//===----- FuncInfoAbstract.h - Transformation pass -----===//
//===----- Copyright © March 2022 by Myoung Jin Nam -----===//
//===----- [email protected], [email protected] -----===//
#ifndef LLVM_TRANSFORMS_FUNC_INFO_ABSTRACT_MIUPASS_H
#define LLVM_TRANSFORMS_FUNC_INFO_ABSTRACT_MIUPASS_H
#include "llvm/IR/PassManager.h"
#include <llvm/Pass.h>
#include <llvm/IR/PassManager.h>
#include <llvm/IR/BasicBlock.h>
#include <llvm/IR/Function.h>
#include <llvm/IR/InlineAsm.h>
#include <llvm/IR/InstIterator.h>
#include <llvm/IR/Instruction.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/Intrinsics.h>
#include <llvm/IR/IntrinsicInst.h>
#include <llvm/IR/InstrTypes.h>
#include <llvm/IR/Constants.h>
#include <llvm/IR/GlobalVariable.h>
#include <llvm/IR/Type.h>
#include <llvm/IR/DerivedTypes.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/IRBuilder.h>
#include <llvm/IR/InstIterator.h>
#include <llvm/IR/LegacyPassManager.h>
#include <llvm/Support/Casting.h>
#include <llvm/IR/Dominators.h>
#include <llvm/ADT/DepthFirstIterator.h>
#include <llvm/ADT/SmallSet.h>
#include <llvm/Transforms/Utils/BasicBlockUtils.h>
#include <llvm/Transforms/IPO/PassManagerBuilder.h>
#include <llvm/Support/CommandLine.h>
#include <llvm/IR/MDBuilder.h>
#include <llvm/IR/Metadata.h>
#include <llvm/Analysis/MemoryBuiltins.h>
#include <llvm/Analysis/TargetLibraryInfo.h>
#include <llvm/Analysis/ScalarEvolution.h>
#include <llvm/Analysis/ScalarEvolutionExpressions.h>
#include <llvm/Analysis/AssumptionCache.h>
#include <llvm/Analysis/LoopAccessAnalysis.h>
#include <llvm/Analysis/LoopInfo.h>
#include <llvm/Analysis/LoopIterator.h>
#include <llvm/Analysis/LoopPass.h>
#include <llvm/Analysis/ValueTracking.h>
#include <llvm/Transforms/Utils/Local.h>
#include <iostream>
#include <map>
#include <set>
#include <utility>
#include <tr1/memory>
#include <tr1/tuple>
#include <assert.h>
#include <unordered_set>
using namespace llvm;
namespace SelfContainedMiuProject {
class FuncInfoAbstract {
protected:
Function* F = nullptr;
TargetLibraryInfoWrapperPass *TLIWP = nullptr;
public:
FuncInfoAbstract(Function* F) {
this->F = F;
}
virtual ~FuncInfoAbstract() = 0;
void setTLIWP (TargetLibraryInfoWrapperPass *TLIWP_M)
{
this->TLIWP = TLIWP_M;
}
TargetLibraryInfo * getTLI(const Function & F)
{
return &this->TLIWP->getTLI(F);
}
};
FuncInfoAbstract::~FuncInfoAbstract() {}
} // namespace SelfContainedMiuProject
#endif //LLVM_TRANSFORMS_FUNC_INFO_MIU_MIUPASS_H