Jlm
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
jlm::llvm::OutputTracer Class Reference

#include <Trace.hpp>

Inheritance diagram for jlm::llvm::OutputTracer:
Inheritance graph
[legend]
Collaboration diagram for jlm::llvm::OutputTracer:
Collaboration graph
[legend]

Public Member Functions

 OutputTracer (bool enableCaching)
 
bool isTracingThroughLoadedStates ()
 
void setTraceThroughLoadedStates (bool traceThroughLoadedStates)
 
- Public Member Functions inherited from jlm::rvsdg::OutputTracer
virtual ~OutputTracer ()
 
 OutputTracer (bool enableCaching) noexcept
 
bool isTracingThroughStructuralNodes () const noexcept
 
void setTraceThroughStructuralNodes (bool value) noexcept
 
bool isEnteringPhiNodes () const noexcept
 
void setEnterPhiNodes (bool value) noexcept
 
bool isInterprocedural () const noexcept
 
void setInterprocedural (bool value) noexcept
 
Outputtrace (Output &output)
 
Outputtrace (Output &output, const rvsdg::Region *withinRegion)
 
OutputtryTraceThroughGamma (GammaNode &gammaNode, Output &output)
 
OutputtryTraceThroughTheta (ThetaNode &thetaNode, Output &output)
 
void clearCache ()
 

Protected Member Functions

rvsdg::OutputtraceStep (rvsdg::Output &output, const rvsdg::Region *withinRegion) override
 
- Protected Member Functions inherited from jlm::rvsdg::OutputTracer
OutputinsertInCache (const Output &output, Input *traceResult)
 
std::optional< Output * > lookupInCache (const Output &output)
 

Private Attributes

bool traceThroughLoadedStates_ = false
 

Additional Inherited Members

- Protected Attributes inherited from jlm::rvsdg::OutputTracer
bool traceThroughStrucutalNodes_ = true
 
bool enterPhiNodes_ = true
 
bool isInterprocedural_ = true
 
bool enableCaching_
 
std::unordered_map< const Output *, Input * > traceCache_ {}
 

Detailed Description

Definition at line 17 of file Trace.hpp.

Constructor & Destructor Documentation

◆ OutputTracer()

jlm::llvm::OutputTracer::OutputTracer ( bool  enableCaching)
explicit

Definition at line 19 of file Trace.cpp.

Member Function Documentation

◆ isTracingThroughLoadedStates()

bool jlm::llvm::OutputTracer::isTracingThroughLoadedStates ( )
inline

When enabled, tracing can continue through the memory state output of a load, and keep tracing from the load's memory state input.

Returns
true if tracing states through loads is enabled, false otherwise

Definition at line 28 of file Trace.hpp.

◆ setTraceThroughLoadedStates()

void jlm::llvm::OutputTracer::setTraceThroughLoadedStates ( bool  traceThroughLoadedStates)
inline

Enables or disables tracing state edges through load operation nodes.

Parameters
traceThroughLoadedStatesthe new value

Definition at line 38 of file Trace.hpp.

◆ traceStep()

rvsdg::Output & jlm::llvm::OutputTracer::traceStep ( rvsdg::Output output,
const rvsdg::Region withinRegion 
)
overrideprotectedvirtual

The innermost body of the tracing loop. Should trace at least one step, if possible. If it is not possible to trace further, the same output is returned.

Parameters
outputthe output to trace from.
withinRegionif not nullptr, tracing stops if it reaches an argument of the region.
Returns
the result of tracing from the given output, if possible. Otherwise, output.

Reimplemented from jlm::rvsdg::OutputTracer.

Definition at line 24 of file Trace.cpp.

Member Data Documentation

◆ traceThroughLoadedStates_

bool jlm::llvm::OutputTracer::traceThroughLoadedStates_ = false
private

Definition at line 48 of file Trace.hpp.


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