Remove global dialect registration

This has been deprecated for >1month now and removal was announced in:

https://llvm.discourse.group/t/rfc-revamp-dialect-registration/1559/11

Differential Revision: https://reviews.llvm.org/D86356
This commit is contained in:
Mehdi Amini 2020-10-23 20:19:35 +00:00
parent 3a4b832b1b
commit e7021232e6
36 changed files with 54 additions and 153 deletions

View File

@ -22,7 +22,6 @@
#include "Standalone/StandaloneDialect.h"
int main(int argc, char **argv) {
mlir::registerAllDialects();
mlir::registerAllPasses();
// TODO: Register standalone passes here.

View File

@ -68,7 +68,7 @@ std::unique_ptr<toy::ModuleAST> parseInputFile(llvm::StringRef filename) {
}
int dumpMLIR() {
mlir::MLIRContext context(/*loadAllDialects=*/false);
mlir::MLIRContext context;
// Load our Dialect in this MLIR Context.
context.getOrLoadDialect<mlir::toy::ToyDialect>();

View File

@ -102,7 +102,7 @@ int loadMLIR(llvm::SourceMgr &sourceMgr, mlir::MLIRContext &context,
}
int dumpMLIR() {
mlir::MLIRContext context(/*loadAllDialects=*/false);
mlir::MLIRContext context;
// Load our Dialect in this MLIR Context.
context.getOrLoadDialect<mlir::toy::ToyDialect>();

View File

@ -103,7 +103,7 @@ int loadMLIR(llvm::SourceMgr &sourceMgr, mlir::MLIRContext &context,
}
int dumpMLIR() {
mlir::MLIRContext context(/*loadAllDialects=*/false);
mlir::MLIRContext context;
// Load our Dialect in this MLIR Context.
context.getOrLoadDialect<mlir::toy::ToyDialect>();

View File

@ -106,7 +106,7 @@ int loadMLIR(llvm::SourceMgr &sourceMgr, mlir::MLIRContext &context,
}
int dumpMLIR() {
mlir::MLIRContext context(/*loadAllDialects=*/false);
mlir::MLIRContext context;
// Load our Dialect in this MLIR Context.
context.getOrLoadDialect<mlir::toy::ToyDialect>();
@ -172,8 +172,6 @@ int dumpAST() {
}
int main(int argc, char **argv) {
mlir::registerAllDialects();
// Register any command line options.
mlir::registerAsmPrinterCLOptions();
mlir::registerMLIRContextCLOptions();

View File

@ -241,8 +241,6 @@ int runJit(mlir::ModuleOp module) {
}
int main(int argc, char **argv) {
mlir::registerAllDialects();
// Register any command line options.
mlir::registerAsmPrinterCLOptions();
mlir::registerMLIRContextCLOptions();
@ -255,7 +253,7 @@ int main(int argc, char **argv) {
// If we aren't dumping the AST, then we are compiling with/to MLIR.
mlir::MLIRContext context(/*loadAllDialects=*/false);
mlir::MLIRContext context;
// Load our Dialect in this MLIR Context.
context.getOrLoadDialect<mlir::toy::ToyDialect>();

View File

@ -242,8 +242,6 @@ int runJit(mlir::ModuleOp module) {
}
int main(int argc, char **argv) {
mlir::registerAllDialects();
// Register any command line options.
mlir::registerAsmPrinterCLOptions();
mlir::registerMLIRContextCLOptions();
@ -256,7 +254,7 @@ int main(int argc, char **argv) {
// If we aren't dumping the AST, then we are compiling with/to MLIR.
mlir::MLIRContext context(/*loadAllDialects=*/false);
mlir::MLIRContext context;
// Load our Dialect in this MLIR Context.
context.getOrLoadDialect<mlir::toy::ToyDialect>();

View File

@ -284,48 +284,6 @@ private:
MapTy registry;
};
/// Deprecated: this provides a global registry for convenience, while we're
/// transitioning the registration mechanism to a stateless approach.
DialectRegistry &getGlobalDialectRegistry();
/// This controls globally whether the dialect registry is / isn't enabled.
/// This is deprecated and only intended to help the transition. It'll be
/// removed soon.
void enableGlobalDialectRegistry(bool);
bool isGlobalDialectRegistryEnabled();
/// Registers all dialects from the global registries with the
/// specified MLIRContext. This won't load the dialects in the context,
/// but only make them available for lazy loading by name.
/// Note: This method is not thread-safe.
/// Deprecated: this method will be deleted soon.
void registerAllDialects(MLIRContext *context);
/// Register and return the dialect with the given namespace in the provided
/// context. Returns nullptr is there is no constructor registered for this
/// dialect.
inline Dialect *registerDialect(StringRef name, MLIRContext *context) {
return getGlobalDialectRegistry().loadByName(name, context);
}
/// Utility to register a dialect. Client can register their dialect with the
/// global registry by calling registerDialect<MyDialect>();
/// Note: This method is not thread-safe.
template <typename ConcreteDialect> void registerDialect() {
getGlobalDialectRegistry().insert<ConcreteDialect>();
}
/// DialectRegistration provides a global initializer that registers a Dialect
/// allocation routine.
///
/// Usage:
///
/// // At namespace scope.
/// static DialectRegistration<MyDialect> Unused;
template <typename ConcreteDialect> struct DialectRegistration {
DialectRegistration() { registerDialect<ConcreteDialect>(); }
};
} // namespace mlir
namespace llvm {

View File

@ -24,7 +24,6 @@ class InFlightDiagnostic;
class Location;
class MLIRContextImpl;
class StorageUniquer;
DialectRegistry &getGlobalDialectRegistry();
/// MLIRContext is the top-level object for a collection of MLIR modules. It
/// holds immortal uniqued objects like types, and the tables used to unique
@ -40,7 +39,7 @@ public:
/// The loadAllDialects parameters allows to load all dialects from the global
/// registry on Context construction. It is deprecated and will be removed
/// soon.
explicit MLIRContext(bool loadAllDialects = true);
explicit MLIRContext();
~MLIRContext();
/// Return information about all IR dialects loaded in the context.
@ -88,11 +87,6 @@ public:
loadDialect<OtherDialect, MoreDialects...>();
}
/// Deprecated: load all globally registered dialects into this context.
/// This method will be removed soon, it can be used temporarily as we're
/// phasing out the global registry.
void loadAllGloballyRegisteredDialects();
/// Get (or create) a dialect for the given derived dialect name.
/// The dialect will be loaded from the registry if no dialect is found.
/// If no dialect is loaded for this name and none is available in the

View File

@ -64,13 +64,6 @@ inline void registerAllDialects(DialectRegistry &registry) {
// clang-format on
}
// This function should be called before creating any MLIRContext if one expect
// all the possible dialects to be made available to the context automatically.
inline void registerAllDialects() {
static bool initOnce =
([]() { registerAllDialects(getGlobalDialectRegistry()); }(), true);
(void)initOnce;
}
} // namespace mlir
#endif // MLIR_INITALLDIALECTS_H_

View File

@ -26,7 +26,7 @@ using namespace mlir;
/* ========================================================================== */
MlirContext mlirContextCreate() {
auto *context = new MLIRContext(/*loadAllDialects=*/false);
auto *context = new MLIRContext;
return wrap(context);
}

View File

@ -136,7 +136,7 @@ static LogicalResult roundTripModule(ModuleOp srcModule, bool emitDebugInfo,
if (failed(spirv::serialize(*spirvModules.begin(), binary, emitDebugInfo)))
return failure();
MLIRContext deserializationContext(false);
MLIRContext deserializationContext;
context->getDialectRegistry().loadAll(&deserializationContext);
// Then deserialize to get back a SPIR-V module.
spirv::OwningSPIRVModuleRef spirvModule =

View File

@ -22,6 +22,7 @@
#include "mlir/IR/MLIRContext.h"
#include "mlir/IR/Module.h"
#include "mlir/IR/StandardTypes.h"
#include "mlir/InitAllDialects.h"
#include "mlir/Parser.h"
#include "mlir/Support/FileUtilities.h"
@ -259,8 +260,8 @@ int mlir::JitRunnerMain(
}
}
MLIRContext context(/*loadAllDialects=*/false);
registerAllDialects(&context);
MLIRContext context;
registerAllDialects(context.getDialectRegistry());
auto m = parseMLIRInput(options.inputFilename, &context);
if (!m) {

View File

@ -22,27 +22,6 @@ using namespace detail;
DialectAsmParser::~DialectAsmParser() {}
//===----------------------------------------------------------------------===//
// Dialect Registration (DEPRECATED)
//===----------------------------------------------------------------------===//
/// Registry for all dialect allocation functions.
static llvm::ManagedStatic<DialectRegistry> dialectRegistry;
DialectRegistry &mlir::getGlobalDialectRegistry() { return *dialectRegistry; }
// Note: deprecated, will be removed soon.
static bool isGlobalDialectRegistryEnabledFlag = false;
void mlir::enableGlobalDialectRegistry(bool enable) {
isGlobalDialectRegistryEnabledFlag = enable;
}
bool mlir::isGlobalDialectRegistryEnabled() {
return isGlobalDialectRegistryEnabledFlag;
}
void mlir::registerAllDialects(MLIRContext *context) {
dialectRegistry->appendTo(context->getDialectRegistry());
}
Dialect *DialectRegistry::loadByName(StringRef name, MLIRContext *context) {
auto it = registry.find(name.str());
if (it == registry.end())

View File

@ -361,7 +361,7 @@ public:
};
} // end namespace mlir
MLIRContext::MLIRContext(bool loadAllDialects) : impl(new MLIRContextImpl()) {
MLIRContext::MLIRContext() : impl(new MLIRContextImpl()) {
// Initialize values based on the command line flags if they were provided.
if (clOptions.isConstructed()) {
disableMultithreading(clOptions->disableThreading);
@ -369,10 +369,8 @@ MLIRContext::MLIRContext(bool loadAllDialects) : impl(new MLIRContextImpl()) {
printStackTraceOnDiagnostic(clOptions->printStackTraceOnDiagnostic);
}
// Register dialects with this context.
// Ensure the builtin dialect is always pre-loaded.
getOrLoadDialect<BuiltinDialect>();
if (loadAllDialects)
loadAllGloballyRegisteredDialects();
// Initialize several common attributes and types to avoid the need to lock
// the context when accessing them.
@ -520,12 +518,6 @@ MLIRContext::getOrLoadDialect(StringRef dialectNamespace, TypeID dialectID,
return dialect.get();
}
void MLIRContext::loadAllGloballyRegisteredDialects() {
if (!isGlobalDialectRegistryEnabled())
return;
getGlobalDialectRegistry().loadAll(this);
}
bool MLIRContext::allowsUnregisteredDialects() {
return impl->allowUnregisteredDialects;
}

View File

@ -89,7 +89,7 @@ static LogicalResult processBuffer(raw_ostream &os,
sourceMgr.AddNewSourceBuffer(std::move(ownedBuffer), SMLoc());
// Parse the input file.
MLIRContext context(/*loadAllDialects=*/preloadDialectsInContext);
MLIRContext context;
registry.appendTo(context.getDialectRegistry());
if (preloadDialectsInContext)
registry.loadAll(&context);

View File

@ -175,7 +175,7 @@ LogicalResult mlir::mlirTranslateMain(int argc, char **argv,
// Processes the memory buffer with a new MLIRContext.
auto processBuffer = [&](std::unique_ptr<llvm::MemoryBuffer> ownedBuffer,
raw_ostream &os) {
MLIRContext context(false);
MLIRContext context;
context.printOpOnDiagnostic(!verifyDiagnostics);
llvm::SourceMgr sourceMgr;
sourceMgr.AddNewSourceBuffer(std::move(ownedBuffer), llvm::SMLoc());

View File

@ -36,7 +36,7 @@ using namespace mlir::edsc;
using namespace mlir::edsc::intrinsics;
static MLIRContext &globalContext() {
static thread_local MLIRContext context(/*loadAllDialects=*/false);
static thread_local MLIRContext context;
static thread_local bool initOnce = [&]() {
// clang-format off
context.loadDialect<AffineDialect,

View File

@ -21,7 +21,7 @@ using namespace mlir;
static MLIRContext *ctx() {
static thread_local MLIRContext context(/*loadAllDialects=*/false);
static thread_local MLIRContext context;
static thread_local bool once =
(context.getOrLoadDialect<SDBMDialect>(), true);
(void)once;

View File

@ -19,7 +19,6 @@
#include "llvm/Support/TargetSelect.h"
int main(int argc, char **argv) {
mlir::registerAllDialects();
llvm::InitLLVM y(argc, argv);
llvm::InitializeNativeTarget();
llvm::InitializeNativeTargetAsmPrinter();

View File

@ -125,7 +125,6 @@ static LogicalResult runMLIRPasses(ModuleOp m) {
int main(int argc, char **argv) {
registerPassManagerCLOptions();
mlir::registerAllDialects();
llvm::InitLLVM y(argc, argv);
llvm::InitializeNativeTarget();
llvm::InitializeNativeTargetAsmPrinter();

View File

@ -1757,7 +1757,7 @@ int main(int argc, char **argv) {
if (testEmitIncludeTdHeader)
output->os() << "include \"mlir/Dialect/Linalg/IR/LinalgStructuredOps.td\"";
MLIRContext context(/*loadAllDialects=*/false);
MLIRContext context;
llvm::SourceMgr mgr;
mgr.AddNewSourceBuffer(std::move(file), llvm::SMLoc());
Parser parser(mgr, &context);

View File

@ -144,7 +144,6 @@ void registerTestPasses() {
#endif
int main(int argc, char **argv) {
registerAllDialects();
registerAllPasses();
#ifdef MLIR_INCLUDE_TESTS
registerTestPasses();

View File

@ -71,7 +71,6 @@ int main(int argc, char **argv) {
llvm::InitLLVM y(argc, argv);
registerAllDialects();
registerMLIRContextCLOptions();
registerPassManagerCLOptions();

View File

@ -322,7 +322,6 @@ static LogicalResult runMLIRPasses(ModuleOp m) {
int main(int argc, char **argv) {
registerPassManagerCLOptions();
mlir::registerAllDialects();
llvm::InitLLVM y(argc, argv);
llvm::InitializeAllTargetInfos();
llvm::InitializeAllTargetMCs();

View File

@ -53,7 +53,6 @@ int main(int argc, char **argv) {
llvm::llvm_shutdown_obj x;
registerPassManagerCLOptions();
mlir::registerAllDialects();
llvm::InitLLVM y(argc, argv);
llvm::InitializeNativeTarget();
llvm::InitializeNativeTargetAsmPrinter();

View File

@ -75,7 +75,7 @@ UniformQuantizedType getTestQuantizedType(Type storageType, MLIRContext *ctx) {
}
TEST(QuantizationUtilsTest, convertFloatAttrUniform) {
MLIRContext ctx(/*loadAllDialects=*/false);
MLIRContext ctx;
ctx.getOrLoadDialect<QuantizationDialect>();
IntegerType convertedType = IntegerType::get(8, &ctx);
auto quantizedType = getTestQuantizedType(convertedType, &ctx);
@ -93,7 +93,7 @@ TEST(QuantizationUtilsTest, convertFloatAttrUniform) {
}
TEST(QuantizationUtilsTest, convertRankedDenseAttrUniform) {
MLIRContext ctx(/*loadAllDialects=*/false);
MLIRContext ctx;
ctx.getOrLoadDialect<QuantizationDialect>();
IntegerType convertedType = IntegerType::get(8, &ctx);
auto quantizedType = getTestQuantizedType(convertedType, &ctx);
@ -118,7 +118,7 @@ TEST(QuantizationUtilsTest, convertRankedDenseAttrUniform) {
}
TEST(QuantizationUtilsTest, convertRankedSplatAttrUniform) {
MLIRContext ctx(/*loadAllDialects=*/false);
MLIRContext ctx;
ctx.getOrLoadDialect<QuantizationDialect>();
IntegerType convertedType = IntegerType::get(8, &ctx);
auto quantizedType = getTestQuantizedType(convertedType, &ctx);
@ -143,7 +143,7 @@ TEST(QuantizationUtilsTest, convertRankedSplatAttrUniform) {
}
TEST(QuantizationUtilsTest, convertRankedSparseAttrUniform) {
MLIRContext ctx(/*loadAllDialects=*/false);
MLIRContext ctx;
ctx.getOrLoadDialect<QuantizationDialect>();
IntegerType convertedType = IntegerType::get(8, &ctx);
auto quantizedType = getTestQuantizedType(convertedType, &ctx);

View File

@ -25,9 +25,6 @@
using namespace mlir;
/// Load the SPIRV dialect.
static DialectRegistration<spirv::SPIRVDialect> SPIRVRegistration;
using ::testing::StrEq;
//===----------------------------------------------------------------------===//
@ -38,7 +35,7 @@ using ::testing::StrEq;
/// diagnostic checking utilities.
class DeserializationTest : public ::testing::Test {
protected:
DeserializationTest() : context(/*loadAllDialects=*/false) {
DeserializationTest() {
context.getOrLoadDialect<mlir::spirv::SPIRVDialect>();
// Register a diagnostic handler to capture the diagnostic so that we can
// check it later.

View File

@ -36,7 +36,7 @@ using namespace mlir;
class SerializationTest : public ::testing::Test {
protected:
SerializationTest() : context(/*loadAllDialects=*/false) {
SerializationTest() {
context.getOrLoadDialect<mlir::spirv::SPIRVDialect>();
createModuleOp();
}

View File

@ -32,7 +32,7 @@ static void testSplat(Type eltType, const EltTy &splatElt) {
namespace {
TEST(DenseSplatTest, BoolSplat) {
MLIRContext context(false);
MLIRContext context;
IntegerType boolTy = IntegerType::get(1, &context);
RankedTensorType shape = RankedTensorType::get({2, 2}, boolTy);
@ -57,7 +57,7 @@ TEST(DenseSplatTest, BoolSplat) {
TEST(DenseSplatTest, LargeBoolSplat) {
constexpr int64_t boolCount = 56;
MLIRContext context(false);
MLIRContext context;
IntegerType boolTy = IntegerType::get(1, &context);
RankedTensorType shape = RankedTensorType::get({boolCount}, boolTy);
@ -80,7 +80,7 @@ TEST(DenseSplatTest, LargeBoolSplat) {
}
TEST(DenseSplatTest, BoolNonSplat) {
MLIRContext context(false);
MLIRContext context;
IntegerType boolTy = IntegerType::get(1, &context);
RankedTensorType shape = RankedTensorType::get({6}, boolTy);
@ -92,7 +92,7 @@ TEST(DenseSplatTest, BoolNonSplat) {
TEST(DenseSplatTest, OddIntSplat) {
// Test detecting a splat with an odd(non 8-bit) integer bitwidth.
MLIRContext context(false);
MLIRContext context;
constexpr size_t intWidth = 19;
IntegerType intTy = IntegerType::get(intWidth, &context);
APInt value(intWidth, 10);
@ -101,7 +101,7 @@ TEST(DenseSplatTest, OddIntSplat) {
}
TEST(DenseSplatTest, Int32Splat) {
MLIRContext context(false);
MLIRContext context;
IntegerType intTy = IntegerType::get(32, &context);
int value = 64;
@ -109,7 +109,7 @@ TEST(DenseSplatTest, Int32Splat) {
}
TEST(DenseSplatTest, IntAttrSplat) {
MLIRContext context(false);
MLIRContext context;
IntegerType intTy = IntegerType::get(85, &context);
Attribute value = IntegerAttr::get(intTy, 109);
@ -117,7 +117,7 @@ TEST(DenseSplatTest, IntAttrSplat) {
}
TEST(DenseSplatTest, F32Splat) {
MLIRContext context(false);
MLIRContext context;
FloatType floatTy = FloatType::getF32(&context);
float value = 10.0;
@ -125,7 +125,7 @@ TEST(DenseSplatTest, F32Splat) {
}
TEST(DenseSplatTest, F64Splat) {
MLIRContext context(false);
MLIRContext context;
FloatType floatTy = FloatType::getF64(&context);
double value = 10.0;
@ -133,7 +133,7 @@ TEST(DenseSplatTest, F64Splat) {
}
TEST(DenseSplatTest, FloatAttrSplat) {
MLIRContext context(false);
MLIRContext context;
FloatType floatTy = FloatType::getF32(&context);
Attribute value = FloatAttr::get(floatTy, 10.0);
@ -141,7 +141,7 @@ TEST(DenseSplatTest, FloatAttrSplat) {
}
TEST(DenseSplatTest, BF16Splat) {
MLIRContext context(false);
MLIRContext context;
FloatType floatTy = FloatType::getBF16(&context);
Attribute value = FloatAttr::get(floatTy, 10.0);
@ -149,7 +149,7 @@ TEST(DenseSplatTest, BF16Splat) {
}
TEST(DenseSplatTest, StringSplat) {
MLIRContext context(false);
MLIRContext context;
Type stringType =
OpaqueType::get(Identifier::get("test", &context), "string", &context);
StringRef value = "test-string";
@ -157,7 +157,7 @@ TEST(DenseSplatTest, StringSplat) {
}
TEST(DenseSplatTest, StringAttrSplat) {
MLIRContext context(false);
MLIRContext context;
Type stringType =
OpaqueType::get(Identifier::get("test", &context), "string", &context);
Attribute stringAttr = StringAttr::get("test-string", stringType);
@ -165,28 +165,28 @@ TEST(DenseSplatTest, StringAttrSplat) {
}
TEST(DenseComplexTest, ComplexFloatSplat) {
MLIRContext context(false);
MLIRContext context;
ComplexType complexType = ComplexType::get(FloatType::getF32(&context));
std::complex<float> value(10.0, 15.0);
testSplat(complexType, value);
}
TEST(DenseComplexTest, ComplexIntSplat) {
MLIRContext context(false);
MLIRContext context;
ComplexType complexType = ComplexType::get(IntegerType::get(64, &context));
std::complex<int64_t> value(10, 15);
testSplat(complexType, value);
}
TEST(DenseComplexTest, ComplexAPFloatSplat) {
MLIRContext context(false);
MLIRContext context;
ComplexType complexType = ComplexType::get(FloatType::getF32(&context));
std::complex<APFloat> value(APFloat(10.0f), APFloat(15.0f));
testSplat(complexType, value);
}
TEST(DenseComplexTest, ComplexAPIntSplat) {
MLIRContext context(false);
MLIRContext context;
ComplexType complexType = ComplexType::get(IntegerType::get(64, &context));
std::complex<APInt> value(APInt(64, 10), APInt(64, 15));
testSplat(complexType, value);

View File

@ -26,7 +26,7 @@ struct AnotherTestDialect : public Dialect {
};
TEST(DialectDeathTest, MultipleDialectsWithSameNamespace) {
MLIRContext context(false);
MLIRContext context;
// Registering a dialect with the same namespace twice should result in a
// failure.

View File

@ -26,7 +26,7 @@ static Operation *createOp(MLIRContext *context,
namespace {
TEST(OperandStorageTest, NonResizable) {
MLIRContext context(false);
MLIRContext context;
Builder builder(&context);
Operation *useOp =
@ -50,7 +50,7 @@ TEST(OperandStorageTest, NonResizable) {
}
TEST(OperandStorageTest, Resizable) {
MLIRContext context(false);
MLIRContext context;
Builder builder(&context);
Operation *useOp =
@ -78,7 +78,7 @@ TEST(OperandStorageTest, Resizable) {
}
TEST(OperandStorageTest, RangeReplace) {
MLIRContext context(false);
MLIRContext context;
Builder builder(&context);
Operation *useOp =
@ -114,7 +114,7 @@ TEST(OperandStorageTest, RangeReplace) {
}
TEST(OperandStorageTest, MutableRange) {
MLIRContext context(false);
MLIRContext context;
Builder builder(&context);
Operation *useOp =
@ -151,7 +151,7 @@ TEST(OperandStorageTest, MutableRange) {
}
TEST(OperationOrderTest, OrderIsAlwaysValid) {
MLIRContext context(false);
MLIRContext context;
Builder builder(&context);
Operation *containerOp =

View File

@ -29,7 +29,7 @@ struct OpSpecificAnalysis {
};
TEST(AnalysisManagerTest, FineGrainModuleAnalysisPreservation) {
MLIRContext context(false);
MLIRContext context;
// Test fine grain invalidation of the module analysis manager.
OwningModuleRef module(ModuleOp::create(UnknownLoc::get(&context)));
@ -50,7 +50,7 @@ TEST(AnalysisManagerTest, FineGrainModuleAnalysisPreservation) {
}
TEST(AnalysisManagerTest, FineGrainFunctionAnalysisPreservation) {
MLIRContext context(false);
MLIRContext context;
Builder builder(&context);
// Create a function and a module.
@ -79,7 +79,7 @@ TEST(AnalysisManagerTest, FineGrainFunctionAnalysisPreservation) {
}
TEST(AnalysisManagerTest, FineGrainChildFunctionAnalysisPreservation) {
MLIRContext context(false);
MLIRContext context;
Builder builder(&context);
// Create a function and a module.
@ -122,7 +122,7 @@ struct CustomInvalidatingAnalysis {
};
TEST(AnalysisManagerTest, CustomInvalidation) {
MLIRContext context(false);
MLIRContext context;
Builder builder(&context);
// Create a function and a module.

View File

@ -19,7 +19,7 @@ using namespace mlir;
static MLIRContext *ctx() {
static thread_local MLIRContext context(false);
static thread_local MLIRContext context;
context.getOrLoadDialect<SDBMDialect>();
return &context;
}

View File

@ -26,7 +26,7 @@ namespace mlir {
//===----------------------------------------------------------------------===//
static MLIRContext &getContext() {
static MLIRContext ctx(false);
static MLIRContext ctx;
ctx.getOrLoadDialect<TestDialect>();
return ctx;
}

View File

@ -44,7 +44,7 @@ static test::TestStruct getTestStruct(mlir::MLIRContext *context) {
/// Validates that test::TestStruct::classof correctly identifies a valid
/// test::TestStruct.
TEST(StructsGenTest, ClassofTrue) {
mlir::MLIRContext context(false);
mlir::MLIRContext context;
auto structAttr = getTestStruct(&context);
ASSERT_TRUE(test::TestStruct::classof(structAttr));
}