8#ifndef MLIR_PASS_PASSDETAIL_H_
9#define MLIR_PASS_PASSDETAIL_H_
14#include "llvm/ADT/ArrayRef.h"
15#include "llvm/Support/FormatVariadic.h"
26 :
public PassWrapper<OpToOpPassAdaptor, OperationPass<>> {
55 return asyncExecutors;
63 void runOnOperationImpl(
bool verifyPasses);
66 void runOnOperationAsyncImpl(
bool verifyPasses);
73 bool verifyPasses,
unsigned parentInitGeneration);
79 static LogicalResult runPipeline(
102 bool localReproducer);
128 std::unique_ptr<Impl>
impl;
This class represents an analysis manager for a particular operation instance.
The DialectRegistry maps a dialect namespace to a constructor for the matching dialect.
MLIRContext is the top-level object for a collection of MLIR operations.
This class represents a pass manager that runs passes on either a specific operation type,...
Operation is the basic unit of execution within MLIR.
This class holds a collection of PassInstrumentation objects, and invokes their respective call backs...
The main pass manager and pipeline builder.
The abstract base pass class.
friend class OpPassManager
Allow access to 'clone'.
void getDependentDialects(DialectRegistry &dialects) const override
Populate the set of dependent dialects for the passes in the current adaptor.
MutableArrayRef< OpPassManager > getPassManagers()
Returns the pass managers held by this adaptor.
OpToOpPassAdaptor(const OpToOpPassAdaptor &rhs)=default
MutableArrayRef< SmallVector< OpPassManager, 1 > > getParallelPassManagers()
Return the async pass managers held by this parallel adaptor.
void runOnOperation() override
The polymorphic API that runs the pass over the currently held operation.
std::string getAdaptorName()
Returns the adaptor pass name.
LogicalResult tryMergeInto(MLIRContext *ctx, OpToOpPassAdaptor &rhs)
Try to merge the current pass adaptor into 'rhs'.
OpToOpPassAdaptor(OpPassManager &&mgr)
void initialize(iterator_range< PassManager::pass_iterator > passes, Operation *op, bool pmFlagVerifyPasses)
Initialize the generator in preparation for reproducer generation.
void removeLastReproducerFor(Pass *pass, Operation *op)
Remove the last recorded reproducer anchored at the given pass and operation.
void finalize(Operation *rootOp, LogicalResult executionResult)
Finalize the current run of the generator, generating any necessary reproducers if the provided execu...
void prepareReproducerFor(Pass *pass, Operation *op)
Prepare a new reproducer for the given pass, operating on op.
~PassCrashReproducerGenerator()
PassCrashReproducerGenerator(ReproducerStreamFactory &streamFactory, bool localReproducer)
Include the generated interface declarations.
std::function< std::unique_ptr< ReproducerStream >(std::string &error)> ReproducerStreamFactory
Method type for constructing ReproducerStream.
This struct represents information related to the parent pass of pipeline.