LLVM  14.0.0git
Classes | Namespaces | Enumerations | Functions | Variables
Parallel.h File Reference
#include "llvm/ADT/STLExtras.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Threading.h"
#include <algorithm>
#include <condition_variable>
#include <functional>
#include <mutex>
Include dependency graph for Parallel.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::parallel::detail::Latch
 
class  llvm::parallel::detail::TaskGroup
 

Namespaces

 llvm
 This file implements support for optimizing divisions by a constant.
 
 llvm::parallel
 
 llvm::parallel::detail
 

Enumerations

enum  { llvm::parallel::detail::MaxTasksPerGroup = 1024 }
 

Functions

template<class RandomAccessIterator , class Comparator >
RandomAccessIterator llvm::parallel::detail::medianOf3 (RandomAccessIterator Start, RandomAccessIterator End, const Comparator &Comp)
 Inclusive median. More...
 
template<class RandomAccessIterator , class Comparator >
void llvm::parallel::detail::parallel_quick_sort (RandomAccessIterator Start, RandomAccessIterator End, const Comparator &Comp, TaskGroup &TG, size_t Depth)
 
template<class RandomAccessIterator , class Comparator >
void llvm::parallel::detail::parallel_sort (RandomAccessIterator Start, RandomAccessIterator End, const Comparator &Comp)
 
template<class IterTy , class FuncTy >
void llvm::parallel::detail::parallel_for_each (IterTy Begin, IterTy End, FuncTy Fn)
 
template<class IndexTy , class FuncTy >
void llvm::parallel::detail::parallel_for_each_n (IndexTy Begin, IndexTy End, FuncTy Fn)
 
template<class IterTy , class ResultTy , class ReduceFuncTy , class TransformFuncTy >
ResultTy llvm::parallel::detail::parallel_transform_reduce (IterTy Begin, IterTy End, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)
 
template<class RandomAccessIterator , class Comparator = std::less< typename std::iterator_traits<RandomAccessIterator>::value_type>>
void llvm::parallelSort (RandomAccessIterator Start, RandomAccessIterator End, const Comparator &Comp=Comparator())
 
template<class IterTy , class FuncTy >
void llvm::parallelForEach (IterTy Begin, IterTy End, FuncTy Fn)
 
template<class FuncTy >
void llvm::parallelForEachN (size_t Begin, size_t End, FuncTy Fn)
 
template<class IterTy , class ResultTy , class ReduceFuncTy , class TransformFuncTy >
ResultTy llvm::parallelTransformReduce (IterTy Begin, IterTy End, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)
 
template<class RangeTy , class Comparator = std::less<decltype(*std::begin(RangeTy()))>>
void llvm::parallelSort (RangeTy &&R, const Comparator &Comp=Comparator())
 
template<class RangeTy , class FuncTy >
void llvm::parallelForEach (RangeTy &&R, FuncTy Fn)
 
template<class RangeTy , class ResultTy , class ReduceFuncTy , class TransformFuncTy >
ResultTy llvm::parallelTransformReduce (RangeTy &&R, ResultTy Init, ReduceFuncTy Reduce, TransformFuncTy Transform)
 
template<class RangeTy , class FuncTy >
Error llvm::parallelForEachError (RangeTy &&R, FuncTy Fn)
 

Variables

ThreadPoolStrategy llvm::parallel::strategy
 
const ptrdiff_t llvm::parallel::detail::MinParallelSize = 1024