CIRCT  20.0.0git
Public Member Functions | Private Member Functions | Private Attributes | List of all members
circt::esi::AppIDIndex Class Reference

An index for resolving AppIDPaths to dynamic instances. More...

#include <AppID.h>

Collaboration diagram for circt::esi::AppIDIndex:
Collaboration graph
[legend]

Public Member Functions

 AppIDIndex (Operation *mlirTop)
 
 ~AppIDIndex ()
 
bool isValid () const
 
ArrayAttr getChildAppIDsOf (hw::HWModuleLike) const
 
LogicalResult walk (hw::HWModuleLike top, function_ref< void(AppIDPathAttr, ArrayRef< Operation * >)> fn) const
 Walk the AppID hierarchy rooted at the specified module. More...
 
LogicalResult walk (StringRef top, function_ref< void(AppIDPathAttr, ArrayRef< Operation * >)> fn) const
 
FailureOr< ArrayAttr > getAppIDPathAttr (hw::HWModuleLike fromMod, AppIDAttr appid, Location loc) const
 Return an array of InnerNameRefAttrs representing the relative path to 'appid' from 'fromMod'. More...
 

Private Member Functions

LogicalResult walk (hw::HWModuleLike top, hw::HWModuleLike current, SmallVectorImpl< AppIDAttr > &pathStack, SmallVectorImpl< Operation * > &opStack, function_ref< void(AppIDPathAttr, ArrayRef< Operation * >)> fn) const
 Walk the AppID hierarchy rooted at the specified module. More...
 
FailureOr< const ModuleAppIDs * > buildIndexFor (hw::HWModuleLike modToProcess)
 Construct the index for a module. More...
 

Private Attributes

DenseMap< hw::HWModuleLike, ModuleAppIDs * > containerAppIDs
 
bool valid
 
hw::HWSymbolCache symCache
 
Operation * mlirTop
 

Detailed Description

An index for resolving AppIDPaths to dynamic instances.

Definition at line 32 of file AppID.h.

Constructor & Destructor Documentation

◆ AppIDIndex()

circt::esi::AppIDIndex::AppIDIndex ( Operation *  mlirTop)

◆ ~AppIDIndex()

circt::esi::AppIDIndex::~AppIDIndex ( )

Member Function Documentation

◆ buildIndexFor()

FailureOr<const ModuleAppIDs *> circt::esi::AppIDIndex::buildIndexFor ( hw::HWModuleLike  modToProcess)
private

Construct the index for a module.

◆ getAppIDPathAttr()

FailureOr<ArrayAttr> circt::esi::AppIDIndex::getAppIDPathAttr ( hw::HWModuleLike  fromMod,
AppIDAttr  appid,
Location  loc 
) const

Return an array of InnerNameRefAttrs representing the relative path to 'appid' from 'fromMod'.

◆ getChildAppIDsOf()

ArrayAttr circt::esi::AppIDIndex::getChildAppIDsOf ( hw::HWModuleLike  ) const

◆ isValid()

bool circt::esi::AppIDIndex::isValid ( ) const
inline

Definition at line 41 of file AppID.h.

References valid.

◆ walk() [1/3]

LogicalResult circt::esi::AppIDIndex::walk ( hw::HWModuleLike  top,
function_ref< void(AppIDPathAttr, ArrayRef< Operation * >)>  fn 
) const

Walk the AppID hierarchy rooted at the specified module.

◆ walk() [2/3]

LogicalResult circt::esi::AppIDIndex::walk ( hw::HWModuleLike  top,
hw::HWModuleLike  current,
SmallVectorImpl< AppIDAttr > &  pathStack,
SmallVectorImpl< Operation * > &  opStack,
function_ref< void(AppIDPathAttr, ArrayRef< Operation * >)>  fn 
) const
private

Walk the AppID hierarchy rooted at the specified module.

◆ walk() [3/3]

LogicalResult circt::esi::AppIDIndex::walk ( StringRef  top,
function_ref< void(AppIDPathAttr, ArrayRef< Operation * >)>  fn 
) const

Member Data Documentation

◆ containerAppIDs

DenseMap<hw::HWModuleLike, ModuleAppIDs *> circt::esi::AppIDIndex::containerAppIDs
private

Definition at line 76 of file AppID.h.

◆ mlirTop

Operation* circt::esi::AppIDIndex::mlirTop
private

Definition at line 80 of file AppID.h.

◆ symCache

hw::HWSymbolCache circt::esi::AppIDIndex::symCache
private

Definition at line 79 of file AppID.h.

◆ valid

bool circt::esi::AppIDIndex::valid
private

Definition at line 78 of file AppID.h.

Referenced by isValid().


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