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 RiddleMLIRContext *Attribute::getContext() const { return getDialect().getContext(); } 21983e0eeaSRiver Riddle 2267653d98SRiver Riddle //===----------------------------------------------------------------------===// 23c7cae0e4SRiver Riddle // NamedAttribute 248d5bd823SRiver Riddle //===----------------------------------------------------------------------===// 258d5bd823SRiver Riddle NamedAttribute(StringAttr name,Attribute value)26*0c7890c8SRiver RiddleNamedAttribute::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 RiddleStringAttr NamedAttribute::getName() const { return name.cast<StringAttr>(); } 33*0c7890c8SRiver Riddle getNameDialect() const34*0c7890c8SRiver RiddleDialect *NamedAttribute::getNameDialect() const { 35*0c7890c8SRiver Riddle return getName().getReferencedDialect(); 36*0c7890c8SRiver Riddle } 37*0c7890c8SRiver Riddle setName(StringAttr newName)38*0c7890c8SRiver Riddlevoid 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 Riddlebool 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 Riddlebool NamedAttribute::operator<(StringRef rhs) const { 48*0c7890c8SRiver Riddle return getName().getValue().compare(rhs) < 0; 495eae715aSJacques Pienaar } 50