Jlm
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
jlm::rvsdg::OutputTracer::TraceStepResult Class Reference

#include <Trace.hpp>

Collaboration diagram for jlm::rvsdg::OutputTracer::TraceStepResult:
Collaboration graph
[legend]

Public Member Functions

Output & getOutput () const noexcept
 
bool isStepOutput () const noexcept
 
bool isFinalOutput () const noexcept
 
bool isDeadEnd () const noexcept
 

Static Public Member Functions

static TraceStepResult createStepOutput (Output &output)
 
static TraceStepResult createFinalOutput (Output &output)
 
static TraceStepResult createDeadEndResult ()
 

Private Types

enum class  TraceStepResultKind { StepOutput , FinalOutput , DeadEnd }
 

Private Member Functions

 TraceStepResult (Output *output, TraceStepResultKind kind)
 

Private Attributes

Output * output_
 
TraceStepResultKind kind_
 

Detailed Description

Internal class used for returning intermediate results during tracing.

Definition at line 254 of file Trace.hpp.

Member Enumeration Documentation

◆ TraceStepResultKind

Enumerator
StepOutput 
FinalOutput 
DeadEnd 

Definition at line 337 of file Trace.hpp.

Constructor & Destructor Documentation

◆ TraceStepResult()

jlm::rvsdg::OutputTracer::TraceStepResult::TraceStepResult ( Output *  output,
TraceStepResultKind  kind 
)
inlineprivate

Definition at line 355 of file Trace.hpp.

Member Function Documentation

◆ createDeadEndResult()

static TraceStepResult jlm::rvsdg::OutputTracer::TraceStepResult::createDeadEndResult ( )
inlinestatic

Creates an instance representing tracing reaching a dead end.

See also
TraceStepResultKind::DeadEnd

Definition at line 331 of file Trace.hpp.

◆ createFinalOutput()

static TraceStepResult jlm::rvsdg::OutputTracer::TraceStepResult::createFinalOutput ( Output &  output)
inlinestatic

Creates an instance representing a final tracing result, from which further tracing is not possible.

Definition at line 321 of file Trace.hpp.

◆ createStepOutput()

static TraceStepResult jlm::rvsdg::OutputTracer::TraceStepResult::createStepOutput ( Output &  output)
inlinestatic

Creates an instance representing a non-final tracing result, that can possibly be traced further.

Definition at line 311 of file Trace.hpp.

◆ getOutput()

Output & jlm::rvsdg::OutputTracer::TraceStepResult::getOutput ( ) const
inlinenoexcept

The output reached after tracing zero, one or more steps. Can only be called if the result is a StepOutput or a FinalOutput.

Returns
the output arrived at by the tracing function

Definition at line 264 of file Trace.hpp.

◆ isDeadEnd()

bool jlm::rvsdg::OutputTracer::TraceStepResult::isDeadEnd ( ) const
inlinenoexcept

Indicates whether tracing from the given output only reaches regions from which control flow can never reach the starting output of the current tracing.

See also
TraceStepResultKind::DeadEnd
Returns
true if the result represents a dead end, otherwise false

Definition at line 301 of file Trace.hpp.

◆ isFinalOutput()

bool jlm::rvsdg::OutputTracer::TraceStepResult::isFinalOutput ( ) const
inlinenoexcept

Indicates whether the returned output represents a fully traced output.

Returns
true if the result is an output that can not be traced further, otherwise false

Definition at line 288 of file Trace.hpp.

◆ isStepOutput()

bool jlm::rvsdg::OutputTracer::TraceStepResult::isStepOutput ( ) const
inlinenoexcept

Indicates whether the trace step result reached an output from which it may be possible to trace further.

Returns
true if the result is an output that may be traced further, otherwise false

Definition at line 277 of file Trace.hpp.

Member Data Documentation

◆ kind_

TraceStepResultKind jlm::rvsdg::OutputTracer::TraceStepResult::kind_
private

Definition at line 361 of file Trace.hpp.

◆ output_

Output* jlm::rvsdg::OutputTracer::TraceStepResult::output_
private

Definition at line 360 of file Trace.hpp.


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