CGRAOmp  0.1
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
CGRAOmp::LoopVerifyResult Class Reference

A derived class from VerifyResultBase bundling detailed results for each verification type. More...

#include <VerifyPass.hpp>

Inheritance diagram for CGRAOmp::LoopVerifyResult:
CGRAOmp::VerifyResultBase

Public Types

using result_iterator = DenseMap< int, VerifyResultBase * >::iterator
 

Public Member Functions

 LoopVerifyResult ()
 Construct a new Verify Result object. More...
 
void print (raw_ostream &OS) const override
 An abstract method to print the verification result. More...
 
void setResult (VerifyResultBase *R)
 Set the verification result for a kind of rule. More...
 
BranchInst * getBackBranch (Loop *L)
 
CmpInst * getBackCondition (Loop *L)
 
void setBackBranch (Loop *L, BranchInst *B)
 
result_iterator result_begin ()
 
result_iterator result_end ()
 
iterator_range< result_iteratorresults ()
 
StringRef getName () const
 
VerifyResultBasegetResult (VerificationKind kind)
 
- Public Member Functions inherited from CGRAOmp::VerifyResultBase
 VerifyResultBase (VerificationKind kind)
 Construct a new Verify Result Base object. More...
 
 VerifyResultBase ()=delete
 default constructor More...
 
 operator bool ()
 explicit cast operator for Boolean Derived classes can custom the violation condition by overriding bool_operator_impl More...
 
void dump ()
 dump the verification result like as debugging in LLVM More...
 
void setVio ()
 mark this result as violated More...
 
virtual VerificationKind getKind () const
 get the kind of derived class More...
 

Static Public Member Functions

static bool classof (const VerifyResultBase *R)
 

Private Member Functions

bool bool_operator_impl () override
 bool_operator More...
 

Private Attributes

DenseMap< int, VerifyResultBase * > each_result
 
DenseMap< Loop *, BranchInst * > back_branch_list
 

Additional Inherited Members

- Protected Attributes inherited from CGRAOmp::VerifyResultBase
bool isViolate = false
 

Detailed Description

A derived class from VerifyResultBase bundling detailed results for each verification type.

Member Typedef Documentation

◆ result_iterator

Constructor & Destructor Documentation

◆ LoopVerifyResult()

CGRAOmp::LoopVerifyResult::LoopVerifyResult ( )
inline

Construct a new Verify Result object.

Member Function Documentation

◆ bool_operator_impl()

bool LoopVerifyResult::bool_operator_impl ( )
overrideprivatevirtual

bool_operator

Returns
true if there is no violation in bundled results
false if there is some violation in a kind of rule

Reimplemented from CGRAOmp::VerifyResultBase.

◆ classof()

static bool CGRAOmp::LoopVerifyResult::classof ( const VerifyResultBase R)
inlinestatic

◆ getBackBranch()

BranchInst* CGRAOmp::LoopVerifyResult::getBackBranch ( Loop *  L)
inline

◆ getBackCondition()

CmpInst* CGRAOmp::LoopVerifyResult::getBackCondition ( Loop *  L)
inline

◆ getName()

StringRef CGRAOmp::LoopVerifyResult::getName ( ) const
inlinevirtual

◆ getResult()

VerifyResultBase* CGRAOmp::LoopVerifyResult::getResult ( VerificationKind  kind)
inline

◆ print()

void LoopVerifyResult::print ( raw_ostream &  OS) const
overridevirtual

An abstract method to print the verification result.

Parameters
OSan output stream

Implements CGRAOmp::VerifyResultBase.

◆ result_begin()

result_iterator CGRAOmp::LoopVerifyResult::result_begin ( )
inline

◆ result_end()

result_iterator CGRAOmp::LoopVerifyResult::result_end ( )
inline

◆ results()

iterator_range<result_iterator> CGRAOmp::LoopVerifyResult::results ( )
inline

◆ setBackBranch()

void CGRAOmp::LoopVerifyResult::setBackBranch ( Loop *  L,
BranchInst *  B 
)
inline

◆ setResult()

void CGRAOmp::LoopVerifyResult::setResult ( VerifyResultBase R)
inline

Set the verification result for a kind of rule.

Parameters
Rthe reuslt

Member Data Documentation

◆ back_branch_list

DenseMap<Loop*,BranchInst*> CGRAOmp::LoopVerifyResult::back_branch_list
private

◆ each_result

DenseMap<int, VerifyResultBase*> CGRAOmp::LoopVerifyResult::each_result
private

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