1792d1c25SRiver Riddle //===- Attributes.cpp - MLIR Affine Expr Classes --------------------------===//
2792d1c25SRiver Riddle //
330857107SMehdi Amini // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
456222a06SMehdi Amini // See https://llvm.org/LICENSE.txt for license information.
556222a06SMehdi Amini // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6792d1c25SRiver Riddle //
756222a06SMehdi Amini //===----------------------------------------------------------------------===//
8792d1c25SRiver Riddle 
9792d1c25SRiver Riddle #include "mlir/IR/Attributes.h"
102e6cd60dSTatiana Shpeisman #include "mlir/IR/Dialect.h"
11792d1c25SRiver Riddle 
12792d1c25SRiver Riddle using namespace mlir;
13792d1c25SRiver Riddle using namespace mlir::detail;
14792d1c25SRiver Riddle 
15b91aea15SRiver Riddle //===----------------------------------------------------------------------===//
16b91aea15SRiver Riddle // Attribute
17b91aea15SRiver Riddle //===----------------------------------------------------------------------===//
18b91aea15SRiver Riddle 
19983e0eeaSRiver Riddle /// Return the context this attribute belongs to.
getContext() const20fc5cf50eSRiver Riddle MLIRContext *Attribute::getContext() const { return getDialect().getContext(); }
21983e0eeaSRiver Riddle 
2267653d98SRiver Riddle //===----------------------------------------------------------------------===//
23c7cae0e4SRiver Riddle // NamedAttribute
248d5bd823SRiver Riddle //===----------------------------------------------------------------------===//
258d5bd823SRiver Riddle 
NamedAttribute(StringAttr name,Attribute value)26*0c7890c8SRiver Riddle NamedAttribute::NamedAttribute(StringAttr name, Attribute value)
27*0c7890c8SRiver Riddle     : name(name), value(value) {
28*0c7890c8SRiver Riddle   assert(name && value && "expected valid attribute name and value");
29*0c7890c8SRiver Riddle   assert(name.size() != 0 && "expected valid attribute name");
305eae715aSJacques Pienaar }
31*0c7890c8SRiver Riddle 
getName() const32*0c7890c8SRiver Riddle StringAttr NamedAttribute::getName() const { return name.cast<StringAttr>(); }
33*0c7890c8SRiver Riddle 
getNameDialect() const34*0c7890c8SRiver Riddle Dialect *NamedAttribute::getNameDialect() const {
35*0c7890c8SRiver Riddle   return getName().getReferencedDialect();
36*0c7890c8SRiver Riddle }
37*0c7890c8SRiver Riddle 
setName(StringAttr newName)38*0c7890c8SRiver Riddle void NamedAttribute::setName(StringAttr newName) {
39*0c7890c8SRiver Riddle   assert(name && "expected valid attribute name");
40*0c7890c8SRiver Riddle   name = newName;
41*0c7890c8SRiver Riddle }
42*0c7890c8SRiver Riddle 
operator <(const NamedAttribute & rhs) const43*0c7890c8SRiver Riddle bool NamedAttribute::operator<(const NamedAttribute &rhs) const {
44*0c7890c8SRiver Riddle   return getName().compare(rhs.getName()) < 0;
45*0c7890c8SRiver Riddle }
46*0c7890c8SRiver Riddle 
operator <(StringRef rhs) const47*0c7890c8SRiver Riddle bool NamedAttribute::operator<(StringRef rhs) const {
48*0c7890c8SRiver Riddle   return getName().getValue().compare(rhs) < 0;
495eae715aSJacques Pienaar }
50