Lines Matching refs:Start
83 RandomAccessIterator medianOf3(RandomAccessIterator Start,
86 RandomAccessIterator Mid = Start + (std::distance(Start, End) / 2);
87 return Comp(*Start, *(End - 1))
88 ? (Comp(*Mid, *(End - 1)) ? (Comp(*Start, *Mid) ? Mid : Start)
90 : (Comp(*Mid, *Start) ? (Comp(*(End - 1), *Mid) ? Mid : End - 1)
91 : Start);
95 void parallel_quick_sort(RandomAccessIterator Start, RandomAccessIterator End,
98 if (std::distance(Start, End) < detail::MinParallelSize || Depth == 0) {
99 llvm::sort(Start, End, Comp);
104 auto Pivot = medianOf3(Start, End, Comp);
107 Pivot = std::partition(Start, End - 1, [&Comp, End](decltype(*Start) V) {
115 parallel_quick_sort(Start, Pivot, Comp, TG, Depth - 1);
121 void parallel_sort(RandomAccessIterator Start, RandomAccessIterator End,
124 parallel_quick_sort(Start, End, Comp, TG,
125 llvm::Log2_64(std::distance(Start, End)) + 1);
175 void sort(Policy policy, RandomAccessIterator Start, RandomAccessIterator End,
179 llvm::sort(Start, End, Comp);
202 void sort(parallel_execution_policy policy, RandomAccessIterator Start,
204 detail::parallel_sort(Start, End, Comp);