CIRCT 22.0.0git
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Attributes | Static Private Attributes | List of all members
circt::arc::runtime::impl::TraceBuffer Struct Reference

A heap allocated buffer containing raw trace data and time step markers. More...

#include <TraceEncoder.h>

Collaboration diagram for circt::arc::runtime::impl::TraceBuffer:
Collaboration graph
[legend]

Public Member Functions

 TraceBuffer ()=delete
 
 TraceBuffer (uint32_t capacity)
 
 TraceBuffer (const TraceBuffer &other)=delete
 
TraceBuffer operator= (const TraceBuffer &other)=delete
 
 TraceBuffer (TraceBuffer &&other) noexcept=default
 
TraceBufferoperator= (TraceBuffer &&other) noexcept=default
 
uint64_t * getData () const
 Get the pointer to the buffer's storage.
 
void clear ()
 Reset the buffer.
 
void assertSentinel () const
 Assert that the buffer's sentinel value has not been overwritten.
 

Public Attributes

uint32_t capacity
 Available storage in number of elements.
 
uint32_t size = 0
 Number of valid elements, set on dispatch.
 
int64_t firstStep = -1
 Time step of the buffer's first entry.
 
std::vector< TraceBufferMarkerstepMarkers
 Time step markers.
 

Private Attributes

std::unique_ptr< uint64_t[]> storage
 

Static Private Attributes

static constexpr uint64_t sentinelValue = UINT64_C(0xABCD1234EFBA8765)
 

Detailed Description

A heap allocated buffer containing raw trace data and time step markers.

Definition at line 45 of file TraceEncoder.h.

Constructor & Destructor Documentation

◆ TraceBuffer() [1/4]

circt::arc::runtime::impl::TraceBuffer::TraceBuffer ( )
delete

◆ TraceBuffer() [2/4]

circt::arc::runtime::impl::TraceBuffer::TraceBuffer ( uint32_t  capacity)
inlineexplicit

Definition at line 49 of file TraceEncoder.h.

References capacity, sentinelValue, and storage.

◆ TraceBuffer() [3/4]

circt::arc::runtime::impl::TraceBuffer::TraceBuffer ( const TraceBuffer other)
delete

◆ TraceBuffer() [4/4]

circt::arc::runtime::impl::TraceBuffer::TraceBuffer ( TraceBuffer &&  other)
defaultnoexcept

Member Function Documentation

◆ assertSentinel()

void circt::arc::runtime::impl::TraceBuffer::assertSentinel ( ) const
inline

◆ clear()

void circt::arc::runtime::impl::TraceBuffer::clear ( )
inline

Reset the buffer.

Definition at line 75 of file TraceEncoder.h.

References firstStep, size, and stepMarkers.

◆ getData()

uint64_t * circt::arc::runtime::impl::TraceBuffer::getData ( ) const
inline

◆ operator=() [1/2]

TraceBuffer circt::arc::runtime::impl::TraceBuffer::operator= ( const TraceBuffer other)
delete

◆ operator=() [2/2]

TraceBuffer & circt::arc::runtime::impl::TraceBuffer::operator= ( TraceBuffer &&  other)
defaultnoexcept

Member Data Documentation

◆ capacity

uint32_t circt::arc::runtime::impl::TraceBuffer::capacity

Available storage in number of elements.

Note: Actual capacity is +1 for sentinel

Definition at line 63 of file TraceEncoder.h.

Referenced by assertSentinel(), and TraceBuffer().

◆ firstStep

int64_t circt::arc::runtime::impl::TraceBuffer::firstStep = -1

◆ sentinelValue

constexpr uint64_t circt::arc::runtime::impl::TraceBuffer::sentinelValue = UINT64_C(0xABCD1234EFBA8765)
staticconstexprprivate

Definition at line 88 of file TraceEncoder.h.

Referenced by assertSentinel(), and TraceBuffer().

◆ size

uint32_t circt::arc::runtime::impl::TraceBuffer::size = 0

◆ stepMarkers

std::vector<TraceBufferMarker> circt::arc::runtime::impl::TraceBuffer::stepMarkers

◆ storage

std::unique_ptr<uint64_t[]> circt::arc::runtime::impl::TraceBuffer::storage
private

Definition at line 89 of file TraceEncoder.h.

Referenced by assertSentinel(), getData(), and TraceBuffer().


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