diff --git a/flang/include/fir/Dialect.h b/flang/include/fir/Dialect.h new file mode 100644 index 000000000000..3b63a4608d97 --- /dev/null +++ b/flang/include/fir/Dialect.h @@ -0,0 +1,54 @@ +// Copyright (c) 2019, NVIDIA CORPORATION. All rights reserved. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#ifndef FIR_DIALECT_H +#define FIR_DIALECT_H + +#include "mlir/IR/Dialect.h" + +namespace llvm { +class raw_ostream; +class StringRef; +} + +namespace mlir { +class Attribute; +class Location; +class MLIRContext; +class Type; +} + +namespace fir { + +/// FIR dialect +class FIROpsDialect final : public mlir::Dialect { +public: + explicit FIROpsDialect(mlir::MLIRContext *ctx); + virtual ~FIROpsDialect(); + + static llvm::StringRef getDialectNamespace() { return "fir"; } + + mlir::Type parseType( + llvm::StringRef rawData, mlir::Location loc) const override; + void printType(mlir::Type ty, llvm::raw_ostream &os) const override; + + mlir::Attribute parseAttribute(llvm::StringRef attrData, mlir::Type type, + mlir::Location loc) const override; + void printAttribute( + mlir::Attribute attr, llvm::raw_ostream &os) const override; +}; + +} // fir + +#endif // FIR_DIALECT_H