FreeTensor
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
freetensor::ReductionItem Struct Reference

#include <for_property.h>

Inheritance diagram for freetensor::ReductionItem:
Inheritance graph
[legend]
Collaboration diagram for freetensor::ReductionItem:
Collaboration graph
[legend]

Public Member Functions

void compHash () override
 
- Public Member Functions inherited from freetensor::ASTPart
virtual ~ASTPart ()
 
 ASTPart (ASTPart &&other)
 
 ASTPart (const ASTPart &other)
 
ASTPartoperator= (ASTPart &&)
 
ASTPartoperator= (const ASTPart &)
 
bool trySetParent (const Ref< ASTPart > &parent)
 
void resetParent ()
 
Ref< ASTPartparent () const
 
bool isSubTree () const
 
int depth () const
 
virtual void modifiedHook ()
 
size_t hash ()
 
virtual bool isAST () const
 
- Public Member Functions inherited from freetensor::EnableSelf< ASTPart >
Ref< ASTPartself () const
 

Public Attributes

ReduceOp op_
 
std::string var_
 
SubTreeList< ExprNodebegins_ = ChildOf{this}
 
SubTreeList< ExprNodeends_ = ChildOf{this}
 
bool syncFlush_
 [begins_, ends_)
 

Additional Inherited Members

- Public Types inherited from freetensor::EnableSelf< ASTPart >
typedef ASTPart Self
 
- Protected Member Functions inherited from freetensor::ASTPart
void lock ()
 
void unlock ()
 
virtual void compHash ()=0
 
void resetHash ()
 
- Protected Attributes inherited from freetensor::ASTPart
size_t hash_ = ~0ull
 
std::atomic_flag lock_ = ATOMIC_FLAG_INIT
 

Member Function Documentation

◆ compHash()

void freetensor::ReductionItem::compHash ( )
overridevirtual

Use synced (atomic) reduce to flush to the final destination after parallel reduction. Used when we are reducing over multiple parallel scopes, where some of them are loop-carried reductions and others are random reductions

Implements freetensor::ASTPart.

Member Data Documentation

◆ begins_

SubTreeList<ExprNode> freetensor::ReductionItem::begins_ = ChildOf{this}

◆ ends_

SubTreeList<ExprNode> freetensor::ReductionItem::ends_ = ChildOf{this}

◆ op_

ReduceOp freetensor::ReductionItem::op_

◆ syncFlush_

bool freetensor::ReductionItem::syncFlush_

[begins_, ends_)

◆ var_

std::string freetensor::ReductionItem::var_

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