blob: bf058c12e114737bda8f7e8409b08d5b6b6dec15 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
//===-- FirAliasTagOpInterface.cpp ----------------------------------===//
//
// 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
//
//===----------------------------------------------------------------------===//
//
// Coding style: https://mlir.llvm.org/getting_started/DeveloperGuide/
//
//===----------------------------------------------------------------------===//
#include "flang/Optimizer/Dialect/FirAliasTagOpInterface.h"
#include "mlir/Dialect/LLVMIR/LLVMDialect.h"
#include "flang/Optimizer/Dialect/FirAliasTagOpInterface.cpp.inc"
llvm::LogicalResult
fir::detail::verifyFirAliasTagOpInterface(mlir::Operation *op) {
auto iface = mlir::cast<FirAliasTagOpInterface>(op);
mlir::ArrayAttr tags = iface.getTBAATagsOrNull();
if (!tags)
return llvm::success();
for (mlir::Attribute iter : tags)
if (!mlir::isa<mlir::LLVM::TBAATagAttr>(iter))
return op->emitOpError("expected op to return array of ")
<< mlir::LLVM::TBAATagAttr::getMnemonic() << " attributes";
return llvm::success();
}
|