Go to the documentation of this file.
30 #ifndef CGRAOmpAnnotationPass_H
31 #define CGRAOmpAnnotationPass_H
33 #include "llvm/IR/PassManager.h"
34 #include "llvm/IR/Function.h"
35 #include "llvm/IR/Module.h"
36 #include "llvm/Passes/PassBuilder.h"
37 #include "llvm/Passes/PassPlugin.h"
38 #include "llvm/Support/raw_ostream.h"
39 #include "llvm/ADT/DenseMap.h"
40 #include "llvm/ADT/SetVector.h"
41 #include "llvm/ADT/StringRef.h"
43 #define LLVM_ANNOT_NAME "llvm.global.annotations"
54 public AnalysisInfoMixin<ModuleAnnotationAnalysisPass> {
56 using ResultBase = DenseMap<Function*, SetVector<StringRef>>;
64 ModuleAnalysisManager::Invalidator &Inv) {
66 return !PAC.preservedWhenStateless();
69 ResultBase::iterator
find(Function *F) {
70 auto hoge = result[F];
71 return result.find(F);
74 ResultBase::iterator
end() {
78 SetVector<StringRef>& operator [](Function *F) {
85 Result run(Module &F, ModuleAnalysisManager &AM);
88 friend AnalysisInfoMixin<ModuleAnnotationAnalysisPass>;
89 static AnalysisKey
Key;
97 public AnalysisInfoMixin<AnnotationAnalysisPass> {
100 Result run(Function &F, FunctionAnalysisManager &AM);
103 friend AnalysisInfoMixin<AnnotationAnalysisPass>;
109 #endif //CGRAOmpAnnotationPass_H
Definition: OptionPlugin.cpp:128
DenseMap< Function *, SetVector< StringRef > > ResultBase
Definition: CGRAOmpAnnotationPass.hpp:56
ResultBase::iterator end()
interface for DenseMap.end
Definition: CGRAOmpAnnotationPass.hpp:74
SetVector< StringRef > Result
Definition: CGRAOmpAnnotationPass.hpp:99
Inner class for analysis result for ModuleAnnotationAnalysisPass.
Definition: CGRAOmpAnnotationPass.hpp:61
Definition: AGVerifyPass.hpp:50
ResultBase result
Definition: CGRAOmpAnnotationPass.hpp:83
Function Pass to analyze which annotations the function has.
Definition: CGRAOmpAnnotationPass.hpp:96
ResultBase::iterator find(Function *F)
interface for DenseMap.find
Definition: CGRAOmpAnnotationPass.hpp:69
bool invalidate(Module &M, const PreservedAnalyses &PA, ModuleAnalysisManager::Invalidator &Inv)
Definition: CGRAOmpAnnotationPass.hpp:63
static AnalysisKey Key
Definition: CGRAOmpAnnotationPass.hpp:104
static AnalysisKey Key
Definition: CGRAOmpAnnotationPass.hpp:89
Module Pass to analyze which annotations each function has.
Definition: CGRAOmpAnnotationPass.hpp:53