VapourSynth-llvmexpr
Loading...
Searching...
No Matches
AnalysisResults.hpp
Go to the documentation of this file.
1
19
20#ifndef LLVMEXPR_ANALYSIS_RESULTS_HPP
21#define LLVMEXPR_ANALYSIS_RESULTS_HPP
22
31
32#include <map>
33#include <string>
34#include <vector>
35
36namespace analysis {
37
39 public:
41 : manager(manager) {}
42
43 [[nodiscard]] const std::vector<CFGBlock>& getCFGBlocks() const {
44 return manager.getResult<BlockAnalysisPass>().cfg_blocks;
45 }
46
47 [[nodiscard]] const std::map<std::string, int>& getLabelToBlockIdx() const {
48 return manager.getResult<BuildCFGPass>().label_to_block_idx;
49 }
50
51 [[nodiscard]] const std::vector<int>& getStackDepthIn() const {
52 return manager.getResult<StackSafetyPass>().stack_depth_in;
53 }
54
55 [[nodiscard]] const RelAccessAnalysisResult&
57 return manager.getResult<RelAccessAnalysisPass>();
58 }
59
60 [[nodiscard]] const CoordinateUsageResult&
62 return manager.getResult<CoordinateUsagePass>();
63 }
64
65 [[nodiscard]] const VariableUsageResult& getVariableUsageResult() const {
66 return manager.getResult<VariableUsagePass>();
67 }
68
69 [[nodiscard]] const StructurizeCFGResult& getStructurizeCFGResult() const {
70 return manager.getResult<StructurizeCFGPass>();
71 }
72
73 [[nodiscard]] const AnalysisManager& getManager() const { return manager; }
74
75 private:
76 const AnalysisManager& manager;
77};
78
79} // namespace analysis
80
81#endif // LLVMEXPR_ANALYSIS_RESULTS_HPP
const RelAccessAnalysisResult & getRelAccessAnalysisResult() const
const CoordinateUsageResult & getCoordinateUsageResult() const
const std::map< std::string, int > & getLabelToBlockIdx() const
const StructurizeCFGResult & getStructurizeCFGResult() const
const std::vector< CFGBlock > & getCFGBlocks() const
ExpressionAnalysisResults(const AnalysisManager &manager)
const std::vector< int > & getStackDepthIn() const
const AnalysisManager & getManager() const
const VariableUsageResult & getVariableUsageResult() const