souffle  2.0.2-371-g6315b36
Public Member Functions | Private Attributes | Friends
souffle::ast::analysis::RelationScheduleAnalysisStep Class Reference

A single step in a relation schedule, consisting of the relations computed in the step and the relations that are no longer required at that step. More...

#include <RelationSchedule.h>

Collaboration diagram for souffle::ast::analysis::RelationScheduleAnalysisStep:
Collaboration graph

Public Member Functions

const std::set< const Relation * > & computed () const
 
const std::set< const Relation * > & expired () const
 
void print (std::ostream &os) const
 
bool recursive () const
 
 RelationScheduleAnalysisStep (std::set< const Relation * > computedRelations, std::set< const Relation * > expiredRelations, const bool isRecursive)
 

Private Attributes

std::set< const Relation * > computedRelations
 
std::set< const Relation * > expiredRelations
 
const bool isRecursive
 

Friends

std::ostream & operator<< (std::ostream &out, const RelationScheduleAnalysisStep &other)
 Add support for printing nodes. More...
 

Detailed Description

A single step in a relation schedule, consisting of the relations computed in the step and the relations that are no longer required at that step.

Definition at line 46 of file RelationSchedule.h.

Constructor & Destructor Documentation

◆ RelationScheduleAnalysisStep()

souffle::ast::analysis::RelationScheduleAnalysisStep::RelationScheduleAnalysisStep ( std::set< const Relation * >  computedRelations,
std::set< const Relation * >  expiredRelations,
const bool  isRecursive 
)
inline

Definition at line 56 of file RelationSchedule.h.

Member Function Documentation

◆ computed()

const std::set<const Relation*>& souffle::ast::analysis::RelationScheduleAnalysisStep::computed ( ) const
inline

Definition at line 61 of file RelationSchedule.h.

65  :
66  std::set<const Relation*> computedRelations;

◆ expired()

const std::set<const Relation*>& souffle::ast::analysis::RelationScheduleAnalysisStep::expired ( ) const
inline

Definition at line 65 of file RelationSchedule.h.

65  :
66  std::set<const Relation*> computedRelations;
67  std::set<const Relation*> expiredRelations;

◆ print()

void souffle::ast::analysis::RelationScheduleAnalysisStep::print ( std::ostream &  os) const

Definition at line 43 of file RelationSchedule.cpp.

45  {
46  os << "recursive";
47  } else {
48  os << "not recursive";
49  }
50  os << "\n";
51 }
52 
53 void RelationScheduleAnalysis::run(const TranslationUnit& translationUnit) {
54  topsortSCCGraphAnalysis = translationUnit.getAnalysis<TopologicallySortedSCCGraphAnalysis>();
55  precedenceGraph = translationUnit.getAnalysis<PrecedenceGraphAnalysis>();
56 
57  size_t numSCCs = translationUnit.getAnalysis<SCCGraphAnalysis>()->getNumberOfSCCs();
58  std::vector<std::set<const Relation*>> relationExpirySchedule =
59  computeRelationExpirySchedule(translationUnit);

◆ recursive()

bool souffle::ast::analysis::RelationScheduleAnalysisStep::recursive ( ) const
inline

Definition at line 69 of file RelationSchedule.h.

74  : public Analysis {

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const RelationScheduleAnalysisStep other 
)
friend

Add support for printing nodes.

Definition at line 76 of file RelationSchedule.h.

78  : Analysis(name) {}
79 

Field Documentation

◆ computedRelations

std::set<const Relation*> souffle::ast::analysis::RelationScheduleAnalysisStep::computedRelations
private

Definition at line 82 of file RelationSchedule.h.

◆ expiredRelations

std::set<const Relation*> souffle::ast::analysis::RelationScheduleAnalysisStep::expiredRelations
private

Definition at line 83 of file RelationSchedule.h.

◆ isRecursive

const bool souffle::ast::analysis::RelationScheduleAnalysisStep::isRecursive
private

Definition at line 84 of file RelationSchedule.h.


The documentation for this class was generated from the following files:
souffle::ast::analysis::RelationScheduleAnalysisStep::expiredRelations
std::set< const Relation * > expiredRelations
Definition: RelationSchedule.h:83
souffle::ast::analysis::RelationScheduleAnalysisStep::computedRelations
std::set< const Relation * > computedRelations
Definition: RelationSchedule.h:82
souffle::ast::analysis::RelationScheduleAnalysis::run
void run(const TranslationUnit &translationUnit) override
run analysis for a Ast translation unit
Definition: RelationSchedule.cpp:61