CIRCT 24.0.0git
Loading...
Searching...
No Matches
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 >:
Collaboration diagram for circt::ExportSystemC::FrozenEmissionPatternSet< PatternTy, KeyTy >:

Classes

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

Public Types

using OpSpecificNativePatternListT
 A map of type specific native patterns.

Public Member Functions

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

Private Types

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

Private Attributes

std::shared_ptr< Impl > impl
 A pointer to the internal pattern list.

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
Initial value:
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.

Member Function Documentation

◆ getSpecificNativePatterns()

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

Return the native patterns held by this set.

Definition at line 300 of file EmissionPattern.h.

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.


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