MLIR  20.0.0git
Public Member Functions | List of all members
mlir::DialectAsmPrinter Class Reference

This is a pure-virtual base class that exposes the asmprinter hooks necessary to implement a custom printAttribute/printType() method on a dialect. More...

#include "mlir/IR/DialectImplementation.h"

+ Inheritance diagram for mlir::DialectAsmPrinter:

Public Member Functions

 ~DialectAsmPrinter () override
 
 AsmPrinter (Impl &impl)
 Initialize the printer with the given internal implementation. More...
 
 AsmPrinter ()=default
 Initialize the printer with no internal implementation. More...
 
- Public Member Functions inherited from mlir::AsmPrinter
 AsmPrinter (Impl &impl)
 Initialize the printer with the given internal implementation. More...
 
virtual ~AsmPrinter ()
 
virtual raw_ostream & getStream () const
 Return the raw output stream used by this printer. More...
 
virtual void printFloat (const APFloat &value)
 Print the given floating point value in a stabilized form that can be roundtripped through the IR. More...
 
virtual void printType (Type type)
 
virtual void printAttribute (Attribute attr)
 
template<typename AttrOrType , std::enable_if_t< detect_has_print_method< AttrOrType >::value > * sfinae = nullptr>
void printStrippedAttrOrType (AttrOrType attrOrType)
 Print the provided attribute in the context of an operation custom printer/parser: this will invoke directly the print method on the attribute class and skip the #dialect.mnemonic prefix in most cases. More...
 
template<typename AttrOrType , std::enable_if_t< detect_has_print_method< AttrOrType >::value > * sfinae = nullptr>
void printStrippedAttrOrType (ArrayRef< AttrOrType > attrOrTypes)
 Print the provided array of attributes or types in the context of an operation custom printer/parser: this will invoke directly the print method on the attribute class and skip the #dialect.mnemonic prefix in most cases. More...
 
template<typename AttrOrType , std::enable_if_t<!detect_has_print_method< AttrOrType >::value > * sfinae = nullptr>
void printStrippedAttrOrType (AttrOrType attrOrType)
 SFINAE for printing the provided attribute in the context of an operation custom printer in the case where the attribute does not define a print method. More...
 
virtual void printAttributeWithoutType (Attribute attr)
 Print the given attribute without its type. More...
 
virtual LogicalResult printAlias (Attribute attr)
 Print the alias for the given attribute, return failure if no alias could be printed. More...
 
virtual LogicalResult printAlias (Type type)
 Print the alias for the given type, return failure if no alias could be printed. More...
 
virtual void printKeywordOrString (StringRef keyword)
 Print the given string as a keyword, or a quoted and escaped string if it has any special or non-printable characters in it. More...
 
virtual void printString (StringRef string)
 Print the given string as a quoted string, escaping any special or non-printable characters in it. More...
 
virtual void printSymbolName (StringRef symbolRef)
 Print the given string as a symbol reference, i.e. More...
 
virtual void printResourceHandle (const AsmDialectResourceHandle &resource)
 Print a handle to the given dialect resource. More...
 
template<typename TypeRange >
void printOptionalArrowTypeList (TypeRange &&types)
 Print an optional arrow followed by a type list. More...
 
template<typename TypeRange >
void printArrowTypeList (TypeRange &&types)
 
template<typename InputRangeT , typename ResultRangeT >
void printFunctionalType (InputRangeT &&inputs, ResultRangeT &&results)
 Print the two given type ranges in a functional form. More...
 
void printDimensionList (ArrayRef< int64_t > shape)
 
template<class AttrOrTypeT >
FailureOr< CyclicPrintResettryStartCyclicPrint (AttrOrTypeT attrOrType)
 Attempts to start a cyclic printing region for attrOrType. More...
 

Additional Inherited Members

- Public Types inherited from mlir::AsmPrinter
template<typename AttrOrType >
using has_print_method = decltype(std::declval< AttrOrType >().print(std::declval< AsmPrinter & >()))
 Trait to check if AttrType provides a print method. More...
 
template<typename AttrOrType >
using detect_has_print_method = llvm::is_detected< has_print_method, AttrOrType >
 
- Protected Member Functions inherited from mlir::AsmPrinter
 AsmPrinter ()=default
 Initialize the printer with no internal implementation. More...
 
virtual LogicalResult pushCyclicPrinting (const void *opaquePointer)
 Pushes a new attribute or type in the form of a type erased pointer into an internal set. More...
 
virtual void popCyclicPrinting ()
 Removes the element that was last inserted with a successful call to pushCyclicPrinting. More...
 

Detailed Description

This is a pure-virtual base class that exposes the asmprinter hooks necessary to implement a custom printAttribute/printType() method on a dialect.

Definition at line 44 of file DialectImplementation.h.

Constructor & Destructor Documentation

◆ ~DialectAsmPrinter()

DialectAsmPrinter::~DialectAsmPrinter ( )
overridedefault

Member Function Documentation

◆ AsmPrinter() [1/2]

mlir::AsmPrinter::AsmPrinter
default

Initialize the printer with no internal implementation.

In this case, all virtual methods of this class must be overriden.

◆ AsmPrinter() [2/2]

mlir::AsmPrinter::AsmPrinter
inline

Initialize the printer with the given internal implementation.

Definition at line 113 of file OpImplementation.h.


The documentation for this class was generated from the following files: