LLZK 0.1.0
Veridise's ZK Language IR
|
Convenience classes for a frequent pattern of dataflow analysis used in LLZK, where an analysis is run across all StructDefOp
s contained within a module, where each of those analyses may need to reference the analysis results from other StructDefOp
s.
More...
#include "llzk/Analysis/DenseAnalysis.h"
#include "llzk/Dialect/Struct/IR/Ops.h"
#include "llzk/Util/Compare.h"
#include "llzk/Util/ErrorHelper.h"
#include "llzk/Util/SymbolHelper.h"
#include <mlir/IR/BuiltinOps.h>
#include <mlir/Pass/AnalysisManager.h>
#include <map>
Go to the source code of this file.
Classes | |
class | llzk::StructAnalysis< Result, Context > |
This is the base class for a dataflow analysis designed to run on a single struct (i.e., a single component). More... | |
struct | llzk::NoContext |
An empty struct that is used for convenience for analyses that do not require any context. More... | |
class | llzk::ModuleAnalysis< Result, Context, StructAnalysisTy > |
An analysis wrapper that runs the given StructAnalysisTy struct analysis over all of the struct contained within the module. More... | |
Namespaces | |
namespace | llzk |
Concepts | |
concept | llzk::StructAnalysisType |
Any type that is a subclass of StructAnalysis . | |
Convenience classes for a frequent pattern of dataflow analysis used in LLZK, where an analysis is run across all StructDefOp
s contained within a module, where each of those analyses may need to reference the analysis results from other StructDefOp
s.
This pattern reoccurs due to the instantiation of subcomponents within components, which often requires the instantiating component to look up the results of an analysis on the subcomponent. This kind of lookup is not supported through mlir's AnalysisManager, as it only allows lookups on nested operations, not sibling operations. This pattern allows subcomponents to instead use the ModuleOp's analysis manager, allowing components to query analyses for any component in the module.
Definition in file AnalysisWrappers.h.