CIRCT  20.0.0git
Classes | Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy > Class Template Reference

This class intends to collect a set of emission patterns in a way to provide fast lookups, but does not allow to add more patterns after construction. More...

#include <EmissionPattern.h>

Inheritance diagram for circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >:
Inheritance graph
[legend]
Collaboration diagram for circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >:
Collaboration graph
[legend]

Classes

struct  Impl
 The internal implementation of the frozen pattern set. More...
 

Public Types

using OpSpecificNativePatternListT = DenseMap< KeyTy, std::vector< PatternTy * > >
 A map of type specific native patterns. More...
 

Public Member Functions

 FrozenEmissionPatternSet ()
 
 FrozenEmissionPatternSet (EmissionPatternSet< PatternTy > &&patterns)
 Freeze the patterns held in patterns, and take ownership. More...
 
const OpSpecificNativePatternListTgetSpecificNativePatterns () const
 Return the native patterns held by this set. More...
 

Private Types

using NativePatternListT = std::vector< std::unique_ptr< PatternTy > >
 

Private Attributes

std::shared_ptr< Implimpl
 A pointer to the internal pattern list. More...
 

Detailed Description

template<typename PatternTy, typename KeyTy>
class circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >

This class intends to collect a set of emission patterns in a way to provide fast lookups, but does not allow to add more patterns after construction.

Definition at line 278 of file EmissionPattern.h.

Member Typedef Documentation

◆ NativePatternListT

template<typename PatternTy , typename KeyTy >
using circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::NativePatternListT = std::vector<std::unique_ptr<PatternTy> >
private

Definition at line 279 of file EmissionPattern.h.

◆ OpSpecificNativePatternListT

template<typename PatternTy , typename KeyTy >
using circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::OpSpecificNativePatternListT = DenseMap<KeyTy, std::vector<PatternTy *> >

A map of type specific native patterns.

Definition at line 283 of file EmissionPattern.h.

Constructor & Destructor Documentation

◆ FrozenEmissionPatternSet() [1/2]

template<typename PatternTy , typename KeyTy >
circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::FrozenEmissionPatternSet ( )
inline

Definition at line 286 of file EmissionPattern.h.

◆ FrozenEmissionPatternSet() [2/2]

template<typename PatternTy , typename KeyTy >
circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::FrozenEmissionPatternSet ( EmissionPatternSet< PatternTy > &&  patterns)
inline

Freeze the patterns held in patterns, and take ownership.

Definition at line 289 of file EmissionPattern.h.

References circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::impl.

Member Function Documentation

◆ getSpecificNativePatterns()

template<typename PatternTy , typename KeyTy >
const OpSpecificNativePatternListT& circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::getSpecificNativePatterns ( ) const
inline

Member Data Documentation

◆ impl

template<typename PatternTy , typename KeyTy >
std::shared_ptr<Impl> circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::impl
private

A pointer to the internal pattern list.

This uses a shared_ptr to avoid the need to compile the same pattern list multiple times. For example, during multi-threaded pass execution, all copies of a pass can share the same pattern list.

Definition at line 319 of file EmissionPattern.h.

Referenced by circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::FrozenEmissionPatternSet(), and circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >::getSpecificNativePatterns().


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