MLIR  16.0.0git
Classes | Namespaces | Functions
Pass.cpp File Reference
#include "mlir-c/Pass.h"
#include "mlir/CAPI/IR.h"
#include "mlir/CAPI/Pass.h"
#include "mlir/CAPI/Support.h"
#include "mlir/CAPI/Utils.h"
#include "mlir/Pass/PassManager.h"
+ Include dependency graph for Pass.cpp:

Go to the source code of this file.

Classes

class  mlir::ExternalPass
 This pass class wraps external passes defined in other languages using the MLIR C-interface. More...
 

Namespaces

 mlir
 Include the generated interface declarations.
 

Functions

MlirPassManager mlirPassManagerCreate (MlirContext ctx)
 Create a new top-level PassManager. More...
 
void mlirPassManagerDestroy (MlirPassManager passManager)
 Destroy the provided PassManager. More...
 
MlirOpPassManager mlirPassManagerGetAsOpPassManager (MlirPassManager passManager)
 Cast a top-level PassManager to a generic OpPassManager. More...
 
MlirLogicalResult mlirPassManagerRun (MlirPassManager passManager, MlirModule module)
 Run the provided passManager on the given module. More...
 
void mlirPassManagerEnableIRPrinting (MlirPassManager passManager)
 Enable mlir-print-ir-after-all. More...
 
void mlirPassManagerEnableVerifier (MlirPassManager passManager, bool enable)
 Enable / disable verify-each. More...
 
MlirOpPassManager mlirPassManagerGetNestedUnder (MlirPassManager passManager, MlirStringRef operationName)
 Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name. More...
 
MlirOpPassManager mlirOpPassManagerGetNestedUnder (MlirOpPassManager passManager, MlirStringRef operationName)
 Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name. More...
 
void mlirPassManagerAddOwnedPass (MlirPassManager passManager, MlirPass pass)
 Add a pass and transfer ownership to the provided top-level mlirPassManager. More...
 
void mlirOpPassManagerAddOwnedPass (MlirOpPassManager passManager, MlirPass pass)
 Add a pass and transfer ownership to the provided mlirOpPassManager. More...
 
void mlirPrintPassPipeline (MlirOpPassManager passManager, MlirStringCallback callback, void *userData)
 Print a textual MLIR pass pipeline by sending chunks of the string representation and forwarding userData tocallback`. More...
 
MlirLogicalResult mlirParsePassPipeline (MlirOpPassManager passManager, MlirStringRef pipeline)
 Parse a textual MLIR pass pipeline and add it to the provided OpPassManager. More...
 
MlirPass mlirCreateExternalPass (MlirTypeID passID, MlirStringRef name, MlirStringRef argument, MlirStringRef description, MlirStringRef opName, intptr_t nDependentDialects, MlirDialectHandle *dependentDialects, MlirExternalPassCallbacks callbacks, void *userData)
 Creates an external MlirPass that calls the supplied callbacks using the supplied userData. More...
 
void mlirExternalPassSignalFailure (MlirExternalPass pass)
 This signals that the pass has failed. More...
 

Function Documentation

◆ mlirCreateExternalPass()

MlirPass mlirCreateExternalPass ( MlirTypeID  passID,
MlirStringRef  name,
MlirStringRef  argument,
MlirStringRef  description,
MlirStringRef  opName,
intptr_t  nDependentDialects,
MlirDialectHandle dependentDialects,
MlirExternalPassCallbacks  callbacks,
void userData 
)

Creates an external MlirPass that calls the supplied callbacks using the supplied userData.

If opName is empty, the pass is a generic operation pass. Otherwise it is an operation pass specific to the specified pass name.

Definition at line 154 of file Pass.cpp.

References MlirStringRef::length, None, unwrap(), and wrap().

◆ mlirExternalPassSignalFailure()

void mlirExternalPassSignalFailure ( MlirExternalPass  pass)

This signals that the pass has failed.

This is only valid to call during the run callback of MlirExternalPassCallbacks. See Pass::signalPassFailure().

Definition at line 168 of file Pass.cpp.

References unwrap().

◆ mlirOpPassManagerAddOwnedPass()

void mlirOpPassManagerAddOwnedPass ( MlirOpPassManager  passManager,
MlirPass  pass 
)

Add a pass and transfer ownership to the provided mlirOpPassManager.

If the pass is not a generic operation pass or matching the type of the provided PassManager, a new OpPassManager is implicitly nested under the provided PassManager.

Definition at line 63 of file Pass.cpp.

References unwrap().

Referenced by mlirPassManagerIsNull().

◆ mlirOpPassManagerGetNestedUnder()

MlirOpPassManager mlirOpPassManagerGetNestedUnder ( MlirOpPassManager  passManager,
MlirStringRef  operationName 
)

Nest an OpPassManager under the provided OpPassManager, the nested passmanager will only run on operations matching the provided name.

The returned OpPassManager will be destroyed when the parent is destroyed.

Definition at line 54 of file Pass.cpp.

References unwrap(), and wrap().

Referenced by mlirPassManagerIsNull().

◆ mlirParsePassPipeline()

MlirLogicalResult mlirParsePassPipeline ( MlirOpPassManager  passManager,
MlirStringRef  pipeline 
)

Parse a textual MLIR pass pipeline and add it to the provided OpPassManager.

Definition at line 74 of file Pass.cpp.

References DEFINE_C_API_PTR_METHODS, mlir::parsePassPipeline(), unwrap(), and wrap().

Referenced by mlirPassManagerIsNull().

◆ mlirPassManagerAddOwnedPass()

void mlirPassManagerAddOwnedPass ( MlirPassManager  passManager,
MlirPass  pass 
)

Add a pass and transfer ownership to the provided top-level mlirPassManager.

If the pass is not a generic operation pass or a ModulePass, a new OpPassManager is implicitly nested under the provided PassManager.

Definition at line 59 of file Pass.cpp.

References unwrap().

Referenced by mlirPassManagerIsNull().

◆ mlirPassManagerCreate()

MlirPassManager mlirPassManagerCreate ( MlirContext  ctx)

Create a new top-level PassManager.

Definition at line 23 of file Pass.cpp.

References unwrap(), and wrap().

◆ mlirPassManagerDestroy()

void mlirPassManagerDestroy ( MlirPassManager  passManager)

Destroy the provided PassManager.

Definition at line 27 of file Pass.cpp.

References unwrap().

◆ mlirPassManagerEnableIRPrinting()

void mlirPassManagerEnableIRPrinting ( MlirPassManager  passManager)

Enable mlir-print-ir-after-all.

Definition at line 41 of file Pass.cpp.

References unwrap().

Referenced by mlirPassManagerIsNull().

◆ mlirPassManagerEnableVerifier()

void mlirPassManagerEnableVerifier ( MlirPassManager  passManager,
bool  enable 
)

Enable / disable verify-each.

Definition at line 45 of file Pass.cpp.

References unwrap().

Referenced by mlirPassManagerIsNull().

◆ mlirPassManagerGetAsOpPassManager()

MlirOpPassManager mlirPassManagerGetAsOpPassManager ( MlirPassManager  passManager)

Cast a top-level PassManager to a generic OpPassManager.

Definition at line 32 of file Pass.cpp.

References unwrap(), and wrap().

Referenced by mlirPassManagerIsNull().

◆ mlirPassManagerGetNestedUnder()

MlirOpPassManager mlirPassManagerGetNestedUnder ( MlirPassManager  passManager,
MlirStringRef  operationName 
)

Nest an OpPassManager under the top-level PassManager, the nested passmanager will only run on operations matching the provided name.

The returned OpPassManager will be destroyed when the parent is destroyed. To further nest more OpPassManager under the newly returned one, see mlirOpPassManagerNest below.

Definition at line 49 of file Pass.cpp.

References unwrap(), and wrap().

Referenced by mlirPassManagerIsNull().

◆ mlirPassManagerRun()

MlirLogicalResult mlirPassManagerRun ( MlirPassManager  passManager,
MlirModule  module 
)

Run the provided passManager on the given module.

Definition at line 36 of file Pass.cpp.

References unwrap(), and wrap().

Referenced by mlirPassManagerIsNull().

◆ mlirPrintPassPipeline()

void mlirPrintPassPipeline ( MlirOpPassManager  passManager,
MlirStringCallback  callback,
void userData 
)

Print a textual MLIR pass pipeline by sending chunks of the string representation and forwarding userData tocallback`.

Note that the callback may be called several times with consecutive chunks of the string.

Definition at line 68 of file Pass.cpp.

References unwrap().

Referenced by mlirPassManagerIsNull().