The DialectResourceBlobManager class provides functionality for managing resource blobs in a generic, dialect-agnostic fashion. In addition to this class, a dialect interface and custom resource handle are provided to simplify referencing and interacting with the manager. These classes intend to simplify the work required for dialects that want to manage resource blobs during compilation, such as for large elements attrs. The old manager for the resource example in the test dialect has been updated to use this, which provides and cleaner and more consistent API. This commit also adds new HeapAsmResourceBlob and ImmortalAsmResourceBlob to simplify creating resource blobs in common scenarios. Differential Revision: https://reviews.llvm.org/D130021
65 lines
2.2 KiB
C++
65 lines
2.2 KiB
C++
//===- TestDialect.h - MLIR Dialect for testing -----------------*- C++ -*-===//
|
|
//
|
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
|
// See https://llvm.org/LICENSE.txt for license information.
|
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This file defines a fake 'test' dialect that can be used for testing things
|
|
// that do not have a respective counterpart in the main source directories.
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#ifndef MLIR_TESTDIALECT_H
|
|
#define MLIR_TESTDIALECT_H
|
|
|
|
#include "TestAttributes.h"
|
|
#include "TestInterfaces.h"
|
|
#include "mlir/Dialect/DLTI/DLTI.h"
|
|
#include "mlir/Dialect/DLTI/Traits.h"
|
|
#include "mlir/Dialect/Func/IR/FuncOps.h"
|
|
#include "mlir/Dialect/Linalg/IR/Linalg.h"
|
|
#include "mlir/Dialect/Traits.h"
|
|
#include "mlir/IR/AsmState.h"
|
|
#include "mlir/IR/BuiltinOps.h"
|
|
#include "mlir/IR/BuiltinTypes.h"
|
|
#include "mlir/IR/Dialect.h"
|
|
#include "mlir/IR/DialectResourceBlobManager.h"
|
|
#include "mlir/IR/ExtensibleDialect.h"
|
|
#include "mlir/IR/OpDefinition.h"
|
|
#include "mlir/IR/OpImplementation.h"
|
|
#include "mlir/IR/RegionKindInterface.h"
|
|
#include "mlir/IR/SymbolTable.h"
|
|
#include "mlir/Interfaces/CallInterfaces.h"
|
|
#include "mlir/Interfaces/ControlFlowInterfaces.h"
|
|
#include "mlir/Interfaces/CopyOpInterface.h"
|
|
#include "mlir/Interfaces/DerivedAttributeOpInterface.h"
|
|
#include "mlir/Interfaces/InferIntRangeInterface.h"
|
|
#include "mlir/Interfaces/InferTypeOpInterface.h"
|
|
#include "mlir/Interfaces/LoopLikeInterface.h"
|
|
#include "mlir/Interfaces/SideEffectInterfaces.h"
|
|
#include "mlir/Interfaces/ViewLikeInterface.h"
|
|
|
|
namespace mlir {
|
|
class DLTIDialect;
|
|
class RewritePatternSet;
|
|
} // namespace mlir
|
|
|
|
//===----------------------------------------------------------------------===//
|
|
// TestDialect
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#include "TestOpInterfaces.h.inc"
|
|
#include "TestOpsDialect.h.inc"
|
|
|
|
#define GET_OP_CLASSES
|
|
#include "TestOps.h.inc"
|
|
|
|
namespace test {
|
|
void registerTestDialect(::mlir::DialectRegistry ®istry);
|
|
void populateTestReductionPatterns(::mlir::RewritePatternSet &patterns);
|
|
} // namespace test
|
|
|
|
#endif // MLIR_TESTDIALECT_H
|