MLIR
20.0.0git
|
This class serves as an opaque interface for passing options to the TargetAttrInterface
methods.
More...
#include "mlir/Dialect/GPU/IR/CompilationInterfaces.h"
Public Member Functions | |
TargetOptions (StringRef toolkitPath={}, ArrayRef< std::string > linkFiles={}, StringRef cmdOptions={}, CompilationTarget compilationTarget=getDefaultCompilationTarget(), function_ref< SymbolTable *()> getSymbolTableCallback={}, function_ref< void(llvm::Module &)> initialLlvmIRCallback={}, function_ref< void(llvm::Module &)> linkedLlvmIRCallback={}, function_ref< void(llvm::Module &)> optimizedLlvmIRCallback={}, function_ref< void(StringRef)> isaCallback={}) | |
Constructor initializing the toolkit path, the list of files to link to, extra command line options, the compilation target and a callback for obtaining the parent symbol table. More... | |
TypeID | getTypeID () const |
Returns the typeID. More... | |
StringRef | getToolkitPath () const |
Returns the toolkit path. More... | |
ArrayRef< std::string > | getLinkFiles () const |
Returns the files to link to. More... | |
StringRef | getCmdOptions () const |
Returns the command line options. More... | |
std::pair< llvm::BumpPtrAllocator, SmallVector< const char * > > | tokenizeCmdOptions () const |
Returns a tokenization of the command line options. More... | |
CompilationTarget | getCompilationTarget () const |
Returns the compilation target. More... | |
SymbolTable * | getSymbolTable () const |
Returns the result of the getSymbolTableCallback callback or a nullptr if no callback was provided. More... | |
function_ref< void(llvm::Module &)> | getInitialLlvmIRCallback () const |
Returns the callback invoked with the initial LLVM IR for the device module. More... | |
function_ref< void(llvm::Module &)> | getLinkedLlvmIRCallback () const |
Returns the callback invoked with LLVM IR for the device module after linking the device libraries. More... | |
function_ref< void(llvm::Module &)> | getOptimizedLlvmIRCallback () const |
Returns the callback invoked with LLVM IR for the device module after LLVM optimizations but before codegen. More... | |
function_ref< void(StringRef)> | getISACallback () const |
Returns the callback invoked with the target ISA for the device, for example PTX assembly. More... | |
Static Public Member Functions | |
static CompilationTarget | getDefaultCompilationTarget () |
Returns the default compilation target: CompilationTarget::Fatbin . More... | |
Protected Member Functions | |
TargetOptions (TypeID typeID, StringRef toolkitPath={}, ArrayRef< std::string > linkFiles={}, StringRef cmdOptions={}, CompilationTarget compilationTarget=getDefaultCompilationTarget(), function_ref< SymbolTable *()> getSymbolTableCallback={}, function_ref< void(llvm::Module &)> initialLlvmIRCallback={}, function_ref< void(llvm::Module &)> linkedLlvmIRCallback={}, function_ref< void(llvm::Module &)> optimizedLlvmIRCallback={}, function_ref< void(StringRef)> isaCallback={}) | |
Derived classes must use this constructor to initialize typeID to the appropiate value: ie. More... | |
Protected Attributes | |
std::string | toolkitPath |
Path to the target toolkit. More... | |
SmallVector< std::string > | linkFiles |
List of files to link with the LLVM module. More... | |
std::string | cmdOptions |
An optional set of command line options to be used by the compilation process. More... | |
CompilationTarget | compilationTarget |
Compilation process target format. More... | |
function_ref< SymbolTable *()> | getSymbolTableCallback |
Callback for obtaining the parent symbol table of all the GPU modules being serialized. More... | |
function_ref< void(llvm::Module &)> | initialLlvmIRCallback |
Callback invoked with the initial LLVM IR for the device module. More... | |
function_ref< void(llvm::Module &)> | linkedLlvmIRCallback |
Callback invoked with LLVM IR for the device module after linking the device libraries. More... | |
function_ref< void(llvm::Module &)> | optimizedLlvmIRCallback |
Callback invoked with LLVM IR for the device module after LLVM optimizations but before codegen. More... | |
function_ref< void(StringRef)> | isaCallback |
Callback invoked with the target ISA for the device, for example PTX assembly. More... | |
This class serves as an opaque interface for passing options to the TargetAttrInterface
methods.
Users of this class must implement the classof
method as well as using the macros MLIR_*_EXPLICIT_TYPE_ID
to ensure type safeness. Targets are free to ignore these options.
Definition at line 46 of file CompilationInterfaces.h.
TargetOptions::TargetOptions | ( | StringRef | toolkitPath = {} , |
ArrayRef< std::string > | linkFiles = {} , |
||
StringRef | cmdOptions = {} , |
||
CompilationTarget | compilationTarget = getDefaultCompilationTarget() , |
||
function_ref< SymbolTable *()> | getSymbolTableCallback = {} , |
||
function_ref< void(llvm::Module &)> | initialLlvmIRCallback = {} , |
||
function_ref< void(llvm::Module &)> | linkedLlvmIRCallback = {} , |
||
function_ref< void(llvm::Module &)> | optimizedLlvmIRCallback = {} , |
||
function_ref< void(StringRef)> | isaCallback = {} |
||
) |
Constructor initializing the toolkit path, the list of files to link to, extra command line options, the compilation target and a callback for obtaining the parent symbol table.
The default compilation target is Fatbin
.
Definition at line 2484 of file GPUDialect.cpp.
|
protected |
Derived classes must use this constructor to initialize typeID
to the appropiate value: ie.
TargetOptions(TypeID::get<DerivedClass>())
.
Definition at line 2497 of file GPUDialect.cpp.
StringRef TargetOptions::getCmdOptions | ( | ) | const |
Returns the command line options.
Definition at line 2519 of file GPUDialect.cpp.
CompilationTarget TargetOptions::getCompilationTarget | ( | ) | const |
Returns the compilation target.
Definition at line 2544 of file GPUDialect.cpp.
Referenced by mlir::ROCDL::SerializeGPUModuleBase::moduleToObjectImpl().
|
static |
Returns the default compilation target: CompilationTarget::Fatbin
.
Definition at line 2548 of file GPUDialect.cpp.
function_ref< void(llvm::Module &)> TargetOptions::getInitialLlvmIRCallback | ( | ) | const |
Returns the callback invoked with the initial LLVM IR for the device module.
Definition at line 2526 of file GPUDialect.cpp.
function_ref< void(StringRef)> TargetOptions::getISACallback | ( | ) | const |
Returns the callback invoked with the target ISA for the device, for example PTX assembly.
Definition at line 2540 of file GPUDialect.cpp.
function_ref< void(llvm::Module &)> TargetOptions::getLinkedLlvmIRCallback | ( | ) | const |
Returns the callback invoked with LLVM IR for the device module after linking the device libraries.
Definition at line 2531 of file GPUDialect.cpp.
ArrayRef< std::string > TargetOptions::getLinkFiles | ( | ) | const |
Returns the files to link to.
Definition at line 2517 of file GPUDialect.cpp.
function_ref< void(llvm::Module &)> TargetOptions::getOptimizedLlvmIRCallback | ( | ) | const |
Returns the callback invoked with LLVM IR for the device module after LLVM optimizations but before codegen.
Definition at line 2536 of file GPUDialect.cpp.
SymbolTable * TargetOptions::getSymbolTable | ( | ) | const |
Returns the result of the getSymbolTableCallback
callback or a nullptr if no callback was provided.
Note: The callback itself can return nullptr. It is up to the target how to react to getting a nullptr, e.g., emitting an error or constructing the table.
Definition at line 2521 of file GPUDialect.cpp.
StringRef TargetOptions::getToolkitPath | ( | ) | const |
Returns the toolkit path.
Definition at line 2515 of file GPUDialect.cpp.
TypeID TargetOptions::getTypeID | ( | ) | const |
Returns the typeID.
Definition at line 2513 of file GPUDialect.cpp.
std::pair< llvm::BumpPtrAllocator, SmallVector< const char * > > TargetOptions::tokenizeCmdOptions | ( | ) | const |
Returns a tokenization of the command line options.
Definition at line 2553 of file GPUDialect.cpp.
|
protected |
An optional set of command line options to be used by the compilation process.
Definition at line 128 of file CompilationInterfaces.h.
|
protected |
Compilation process target format.
Definition at line 131 of file CompilationInterfaces.h.
|
protected |
Callback for obtaining the parent symbol table of all the GPU modules being serialized.
Definition at line 135 of file CompilationInterfaces.h.
|
protected |
Callback invoked with the initial LLVM IR for the device module.
Definition at line 138 of file CompilationInterfaces.h.
|
protected |
Callback invoked with the target ISA for the device, for example PTX assembly.
Definition at line 150 of file CompilationInterfaces.h.
|
protected |
Callback invoked with LLVM IR for the device module after linking the device libraries.
Definition at line 142 of file CompilationInterfaces.h.
|
protected |
List of files to link with the LLVM module.
Definition at line 124 of file CompilationInterfaces.h.
|
protected |
Callback invoked with LLVM IR for the device module after LLVM optimizations but before codegen.
Definition at line 146 of file CompilationInterfaces.h.
|
protected |
Path to the target toolkit.
Definition at line 121 of file CompilationInterfaces.h.