Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy > Class Template Reference

#include <DoAll.h>

List of all members.

Classes

struct  PrivateState
struct  SharedState

Public Member Functions

 DoAllWork (const FunctionTy &F, const ReduceFunTy &R, bool needsReduce, RangeTy r, bool steal)
void operator() ()
FunctionTy getFn () const

Private Types

typedef RangeTy::local_iterator local_iterator

Private Member Functions

void processRange (PrivateState &tld)
 Master execution function for this loop type.
bool doSteal (SharedState &source, PrivateState &dest)
void populateSteal (PrivateState &tld, SharedState &tsd)
GALOIS_ATTRIBUTE_NOINLINE bool trySteal (PrivateState &mytld)
void doReduce (PrivateState &mytld)

Private Attributes

LL::SimpleLock< true > reduceLock
FunctionTy origF
FunctionTy outputF
ReduceFunTy RF
RangeTy range
Barrierbarrier
bool needsReduce
bool useStealing
PerThreadStorage< SharedStateTLDS

template<class FunctionTy, class ReduceFunTy, class RangeTy>
class Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >


Member Typedef Documentation

template<class FunctionTy, class ReduceFunTy, class RangeTy>
typedef RangeTy::local_iterator Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::local_iterator [private]

Constructor & Destructor Documentation

template<class FunctionTy, class ReduceFunTy, class RangeTy>
Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::DoAllWork ( const FunctionTy &  F,
const ReduceFunTy &  R,
bool  needsReduce,
RangeTy  r,
bool  steal 
) [inline]

Member Function Documentation

template<class FunctionTy, class ReduceFunTy, class RangeTy>
void Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::doReduce ( PrivateState mytld  )  [inline, private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
bool Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::doSteal ( SharedState source,
PrivateState dest 
) [inline, private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
FunctionTy Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::getFn (  )  const [inline]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
void Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::operator() ( void   )  [inline]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
void Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::populateSteal ( PrivateState tld,
SharedState tsd 
) [inline, private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
void Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::processRange ( PrivateState tld  )  [inline, private]

Master execution function for this loop type.

template<class FunctionTy, class ReduceFunTy, class RangeTy>
GALOIS_ATTRIBUTE_NOINLINE bool Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::trySteal ( PrivateState mytld  )  [inline, private]

Member Data Documentation

template<class FunctionTy, class ReduceFunTy, class RangeTy>
Barrier& Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::barrier [private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
bool Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::needsReduce [private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
FunctionTy Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::origF [private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
FunctionTy Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::outputF [private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
RangeTy Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::range [private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
LL::SimpleLock<true> Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::reduceLock [private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
ReduceFunTy Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::RF [private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
PerThreadStorage<SharedState> Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::TLDS [private]
template<class FunctionTy, class ReduceFunTy, class RangeTy>
bool Galois::Runtime::DoAllWork< FunctionTy, ReduceFunTy, RangeTy >::useStealing [private]

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

Generated on 2 Nov 2013 for Galois by  doxygen 1.6.1