#include <llvmexpr/analysis/framework/AnalysisResults.hpp>
|
| template<typename PassT> |
| PassT::Result & | getResult () |
| template<typename PassT> |
| const PassT::Result & | getResult () const |
| template<typename PassT> |
| void | setResult (typename PassT::Result &&result) |
| template<typename PassT> |
| bool | hasResult () const |
| template<typename PassT> |
| void | invalidate () |
| void | invalidate (const std::type_index &pass_type) |
| void | clear () |
| const std::unordered_map< std::type_index, std::any > & | getAll () const |
Definition at line 32 of file AnalysisResults.hpp.
◆ clear()
| void analysis::AnalysisResults::clear |
( |
| ) |
|
|
inline |
◆ getAll()
| const std::unordered_map< std::type_index, std::any > & analysis::AnalysisResults::getAll |
( |
| ) |
const |
|
inlinenodiscard |
◆ getResult() [1/2]
template<typename PassT>
| PassT::Result & analysis::AnalysisResults::getResult |
( |
| ) |
|
|
inline |
Definition at line 34 of file AnalysisResults.hpp.
34 {
35 auto key = std::type_index(typeid(PassT));
36 auto it = results.find(key);
37 if (it == results.end()) {
38 throw AnalysisError(
39 std::format("Analysis result not available for pass: {}",
40 typeid(PassT).name()));
41 }
42 return std::any_cast<typename PassT::Result&>(it->second);
43 }
◆ getResult() [2/2]
template<typename PassT>
| const PassT::Result & analysis::AnalysisResults::getResult |
( |
| ) |
const |
|
inline |
Definition at line 45 of file AnalysisResults.hpp.
45 {
46 auto key = std::type_index(typeid(PassT));
47 auto it = results.find(key);
48 if (it == results.end()) {
49 throw AnalysisError(
50 std::format("Analysis result not available for pass: {}",
51 typeid(PassT).name()));
52 }
53 return std::any_cast<const typename PassT::Result&>(it->second);
54 }
◆ hasResult()
template<typename PassT>
| bool analysis::AnalysisResults::hasResult |
( |
| ) |
const |
|
inlinenodiscard |
Definition at line 61 of file AnalysisResults.hpp.
61 {
62 return results.contains(std::type_index(typeid(PassT)));
63 }
◆ invalidate() [1/2]
template<typename PassT>
| void analysis::AnalysisResults::invalidate |
( |
| ) |
|
|
inline |
Definition at line 65 of file AnalysisResults.hpp.
65 {
66 results.erase(std::type_index(typeid(PassT)));
67 }
◆ invalidate() [2/2]
| void analysis::AnalysisResults::invalidate |
( |
const std::type_index & | pass_type | ) |
|
|
inline |
◆ setResult()
template<typename PassT>
| void analysis::AnalysisResults::setResult |
( |
typename PassT::Result && | result | ) |
|
|
inline |
Definition at line 56 of file AnalysisResults.hpp.
56 {
57 auto key = std::type_index(typeid(PassT));
58 results[key] = std::any(std::move(result));
59 }
The documentation for this class was generated from the following file: