GCC Middle and Back End API Reference
diagnostics::paths::path Class Referenceabstract

#include <paths.h>

Inheritance diagram for diagnostics::paths::path:
Collaboration diagram for diagnostics::paths::path:

Public Member Functions

virtual ~path ()
virtual unsigned num_events () const =0
virtual const eventget_event (int idx) const =0
virtual unsigned num_threads () const =0
virtual const threadget_thread (thread_id_t) const =0
virtual bool same_function_p (int event_idx_a, int event_idx_b) const =0
bool interprocedural_p () const
bool multithreaded_p () const
const logical_locations::managerget_logical_location_manager () const

Protected Member Functions

 path (const logical_locations::manager &logical_loc_mgr)

Private Member Functions

bool get_first_event_in_a_function (unsigned *out_idx) const

Private Attributes

const logical_locations::managerm_logical_loc_mgr

Detailed Description

Abstract base class for getting at a sequence of events.   

Constructor & Destructor Documentation

◆ ~path()

virtual diagnostics::paths::path::~path ( )
inlinevirtual

◆ path()

Member Function Documentation

◆ get_event()

virtual const event & diagnostics::paths::path::get_event ( int idx) const
pure virtual

◆ get_first_event_in_a_function()

bool path::get_first_event_in_a_function ( unsigned * out_idx) const
private
class diagnostics::paths::path.   
Subroutine of path::interprocedural_p.
Look for the first event in this path that is within a function
i.e. has a non-null logical location for which function_p is true.
If found, write its index to *OUT_IDX and return true.
Otherwise return false.   

References get_event(), diagnostics::paths::event::get_logical_location(), i, m_logical_loc_mgr, and num_events().

Referenced by interprocedural_p().

◆ get_logical_location_manager()

const logical_locations::manager & diagnostics::paths::path::get_logical_location_manager ( ) const
inline

◆ get_thread()

virtual const thread & diagnostics::paths::path::get_thread ( thread_id_t ) const
pure virtual

◆ interprocedural_p()

bool path::interprocedural_p ( ) const
Return true if the events in this path involve more than one
function, or false if it is purely intraprocedural.   

References get_event(), get_first_event_in_a_function(), diagnostics::paths::event::get_stack_depth(), i, num_events(), and same_function_p().

◆ multithreaded_p()

bool diagnostics::paths::path::multithreaded_p ( ) const

◆ num_events()

virtual unsigned diagnostics::paths::path::num_events ( ) const
pure virtual

◆ num_threads()

virtual unsigned diagnostics::paths::path::num_threads ( ) const
pure virtual

◆ same_function_p()

virtual bool diagnostics::paths::path::same_function_p ( int event_idx_a,
int event_idx_b ) const
pure virtual

Field Documentation

◆ m_logical_loc_mgr

const logical_locations::manager& diagnostics::paths::path::m_logical_loc_mgr
private

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