CIRCT  18.0.0git
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
circt::firrtl::Annotation Class Reference

This class provides a read-only projection of an annotation. More...

#include <FIRRTLAnnotations.h>

Collaboration diagram for circt::firrtl::Annotation:
Collaboration graph
[legend]

Classes

struct  ClassIsa
 Helper struct to perform variadic class equality check. More...
 

Public Types

using iterator = llvm::ArrayRef< NamedAttribute >::iterator
 

Public Member Functions

 Annotation ()
 
 Annotation (Attribute attr)
 
DictionaryAttr getDict () const
 Get the data dictionary of this attribute. More...
 
void setDict (DictionaryAttr dict)
 Set the data dictionary of this attribute. More...
 
unsigned getFieldID () const
 Get the field id this attribute targets. More...
 
Attribute getAttr () const
 Get the underlying attribute. More...
 
StringAttr getClassAttr () const
 Return the 'class' that this annotation is representing. More...
 
StringRef getClass () const
 Return the 'class' that this annotation is representing. More...
 
template<typename... Args>
bool isClass (Args... names) const
 Return true if this annotation matches any of the specified class names. More...
 
template<typename AttrClass = Attribute>
AttrClass getMember (StringAttr name) const
 Return a member of the annotation. More...
 
template<typename AttrClass = Attribute>
AttrClass getMember (StringRef name) const
 
void setMember (StringAttr name, Attribute value)
 Add or set a member of the annotation to a value. More...
 
void setMember (StringRef name, Attribute value)
 
void removeMember (StringAttr name)
 Remove a member of the annotation. More...
 
void removeMember (StringRef name)
 
bool canBeDeleted ()
 Returns true if this is an annotation which can be safely deleted without consequence. More...
 
iterator begin () const
 
iterator end () const
 
bool operator== (const Annotation &other) const
 
bool operator!= (const Annotation &other) const
 
 operator bool () const
 
bool operator! () const
 
void dump ()
 

Private Attributes

Attribute attr
 

Detailed Description

This class provides a read-only projection of an annotation.

Definition at line 48 of file FIRRTLAnnotations.h.

Member Typedef Documentation

◆ iterator

using circt::firrtl::Annotation::iterator = llvm::ArrayRef<NamedAttribute>::iterator

Definition at line 100 of file FIRRTLAnnotations.h.

Constructor & Destructor Documentation

◆ Annotation() [1/2]

circt::firrtl::Annotation::Annotation ( )
inline

Definition at line 50 of file FIRRTLAnnotations.h.

◆ Annotation() [2/2]

circt::firrtl::Annotation::Annotation ( Attribute  attr)
inlineexplicit

Definition at line 52 of file FIRRTLAnnotations.h.

References assert(), and attr.

Member Function Documentation

◆ begin()

iterator circt::firrtl::Annotation::begin ( ) const
inline

Definition at line 101 of file FIRRTLAnnotations.h.

References getDict().

Referenced by Deduper::makeAnnotationNonLocal().

◆ canBeDeleted()

bool Annotation::canBeDeleted ( )

Returns true if this is an annotation which can be safely deleted without consequence.

Definition at line 533 of file FIRRTLAnnotations.cpp.

References isClass(), and circt::firrtl::omirTrackerAnnoClass.

Referenced by circt::firrtl::AnnotationSet::canBeDeleted().

◆ dump()

void Annotation::dump ( )

Definition at line 545 of file FIRRTLAnnotations.cpp.

References attr.

◆ end()

iterator circt::firrtl::Annotation::end ( ) const
inline

Definition at line 102 of file FIRRTLAnnotations.h.

References getDict().

Referenced by Deduper::makeAnnotationNonLocal().

◆ getAttr()

Attribute circt::firrtl::Annotation::getAttr ( ) const
inline

◆ getClass()

StringRef Annotation::getClass ( ) const

Return the 'class' that this annotation is representing.

Definition at line 465 of file FIRRTLAnnotations.cpp.

References getClassAttr().

Referenced by circt::firrtl::applyWithoutTargetImpl(), circt::firrtl::AnnotationSet::removeAnnotation(), and circt::firrtl::AnnotationSet::removeAnnotations().

◆ getClassAttr()

StringAttr Annotation::getClassAttr ( ) const

Return the 'class' that this annotation is representing.

Definition at line 460 of file FIRRTLAnnotations.cpp.

References getDict().

Referenced by getClass(), and isClass().

◆ getDict()

DictionaryAttr Annotation::getDict ( ) const

Get the data dictionary of this attribute.

Definition at line 447 of file FIRRTLAnnotations.cpp.

References attr.

Referenced by begin(), cloneMemWithNewType(), end(), getClassAttr(), getMember(), circt::firrtl::AnnotationSet::removeAnnotation(), removeMember(), and setMember().

◆ getFieldID()

unsigned Annotation::getFieldID ( ) const

Get the field id this attribute targets.

Definition at line 453 of file FIRRTLAnnotations.cpp.

Referenced by cloneMemWithNewType(), and ResolveTracesPass::updateTargetImpl().

◆ getMember() [1/2]

template<typename AttrClass = Attribute>
AttrClass circt::firrtl::Annotation::getMember ( StringAttr  name) const
inline

◆ getMember() [2/2]

template<typename AttrClass = Attribute>
AttrClass circt::firrtl::Annotation::getMember ( StringRef  name) const
inline

Definition at line 84 of file FIRRTLAnnotations.h.

References getDict().

◆ isClass()

template<typename... Args>
bool circt::firrtl::Annotation::isClass ( Args...  names) const
inline

Return true if this annotation matches any of the specified class names.

Definition at line 74 of file FIRRTLAnnotations.h.

References getClassAttr().

Referenced by canBeDeleted(), isAnnoInteresting(), circt::firrtl::AnnotationSet::removeAnnotationsWithClass(), removeAnnotationWithFilename(), and ResolveTracesPass::runOnOperation().

◆ operator bool()

circt::firrtl::Annotation::operator bool ( ) const
inlineexplicit

Definition at line 106 of file FIRRTLAnnotations.h.

References attr.

◆ operator!()

bool circt::firrtl::Annotation::operator! ( ) const
inline

Definition at line 107 of file FIRRTLAnnotations.h.

References attr.

◆ operator!=()

bool circt::firrtl::Annotation::operator!= ( const Annotation other) const
inline

Definition at line 105 of file FIRRTLAnnotations.h.

◆ operator==()

bool circt::firrtl::Annotation::operator== ( const Annotation other) const
inline

Definition at line 104 of file FIRRTLAnnotations.h.

References attr.

◆ removeMember() [1/2]

void Annotation::removeMember ( StringAttr  name)

Remove a member of the annotation.

Definition at line 496 of file FIRRTLAnnotations.cpp.

References getDict(), and setDict().

◆ removeMember() [2/2]

void Annotation::removeMember ( StringRef  name)

Definition at line 513 of file FIRRTLAnnotations.cpp.

References getDict(), and setDict().

◆ setDict()

void Annotation::setDict ( DictionaryAttr  dict)

Set the data dictionary of this attribute.

Definition at line 451 of file FIRRTLAnnotations.cpp.

References attr.

Referenced by Deduper::cloneAnnotation(), removeMember(), and setMember().

◆ setMember() [1/2]

void Annotation::setMember ( StringAttr  name,
Attribute  value 
)

Add or set a member of the annotation to a value.

Definition at line 471 of file FIRRTLAnnotations.cpp.

References value.

Referenced by cloneMemWithNewType().

◆ setMember() [2/2]

void Annotation::setMember ( StringRef  name,
Attribute  value 
)

Definition at line 475 of file FIRRTLAnnotations.cpp.

References circt::calyx::direction::get(), getDict(), setDict(), and value.

Member Data Documentation

◆ attr

Attribute circt::firrtl::Annotation::attr
private

The documentation for this class was generated from the following files: