Previously, they would only only verify `isa<DictionaryAttr>` on such attrs which resulted in crashes down the line from code assuming that the verifier was doing the more thorough check introduced in this patch. The key change here is for StructAttr to use `CPred<"$_self.isa<" # name # ">()">` instead of `isa<DictionaryAttr>`. To test this, introduce struct attrs to the test dialect. Previously, StructAttr was only being tested by unittests/, which didn't verify how StructAttr interacted with ODS. Differential Revision: https://reviews.llvm.org/D78975
42 lines
1.3 KiB
C++
42 lines
1.3 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 "mlir/Dialect/Traits.h"
|
|
#include "mlir/IR/Dialect.h"
|
|
#include "mlir/IR/OpDefinition.h"
|
|
#include "mlir/IR/OpImplementation.h"
|
|
#include "mlir/IR/StandardTypes.h"
|
|
#include "mlir/IR/SymbolTable.h"
|
|
#include "mlir/Interfaces/CallInterfaces.h"
|
|
#include "mlir/Interfaces/ControlFlowInterfaces.h"
|
|
#include "mlir/Interfaces/DerivedAttributeOpInterface.h"
|
|
#include "mlir/Interfaces/InferTypeOpInterface.h"
|
|
#include "mlir/Interfaces/SideEffects.h"
|
|
|
|
#include "TestOpEnums.h.inc"
|
|
|
|
namespace mlir {
|
|
|
|
#include "TestOpStructs.h.inc"
|
|
#include "TestOpsDialect.h.inc"
|
|
|
|
#define GET_OP_CLASSES
|
|
#include "TestOps.h.inc"
|
|
|
|
} // end namespace mlir
|
|
|
|
#endif // MLIR_TESTDIALECT_H
|