CIRCT  20.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 ()=default
 
 Annotation (Attribute attr)
 
 Annotation (Annotation anno, uint64_t fieldID)
 
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 51 of file FIRRTLAnnotations.h.

Member Typedef Documentation

◆ iterator

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

Definition at line 116 of file FIRRTLAnnotations.h.

Constructor & Destructor Documentation

◆ Annotation() [1/3]

circt::firrtl::Annotation::Annotation ( )
default

◆ Annotation() [2/3]

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

Definition at line 55 of file FIRRTLAnnotations.h.

References assert(), and attr.

◆ Annotation() [3/3]

circt::firrtl::Annotation::Annotation ( Annotation  anno,
uint64_t  fieldID 
)
inline

Member Function Documentation

◆ begin()

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

Definition at line 117 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 441 of file FIRRTLAnnotations.cpp.

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

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

◆ dump()

void Annotation::dump ( )

Definition at line 453 of file FIRRTLAnnotations.cpp.

References attr.

◆ end()

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

Definition at line 118 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 373 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 368 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 355 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 361 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 100 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 90 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 122 of file FIRRTLAnnotations.h.

References attr.

◆ operator!()

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

Definition at line 123 of file FIRRTLAnnotations.h.

References attr.

◆ operator!=()

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

Definition at line 121 of file FIRRTLAnnotations.h.

◆ operator==()

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

Definition at line 120 of file FIRRTLAnnotations.h.

References attr.

◆ removeMember() [1/2]

void Annotation::removeMember ( StringAttr  name)

Remove a member of the annotation.

Definition at line 404 of file FIRRTLAnnotations.cpp.

References getDict(), and setDict().

Referenced by Annotation().

◆ removeMember() [2/2]

void Annotation::removeMember ( StringRef  name)

Definition at line 421 of file FIRRTLAnnotations.cpp.

References getDict(), and setDict().

◆ setDict()

void Annotation::setDict ( DictionaryAttr  dict)

Set the data dictionary of this attribute.

Definition at line 359 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 379 of file FIRRTLAnnotations.cpp.

Referenced by Annotation(), and cloneMemWithNewType().

◆ setMember() [2/2]

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

Definition at line 383 of file FIRRTLAnnotations.cpp.

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

Member Data Documentation

◆ attr

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

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