forked from OSchip/llvm-project
[LTO] Change std::sort to llvm::sort in response to r327219
Summary: r327219 added wrappers to std::sort which randomly shuffle the container before sorting. This will help in uncovering non-determinism caused due to undefined sorting order of objects having the same key. To make use of that infrastructure we need to invoke llvm::sort instead of std::sort. Note: This patch is one of a series of patches to replace *all* std::sort to llvm::sort. Refer D44363 for a list of all the required patches. Reviewers: pcc, mehdi_amini, ruiu Reviewed By: ruiu Subscribers: ruiu, inglorion, eraman, llvm-commits Differential Revision: https://reviews.llvm.org/D45137 llvm-svn: 330053
This commit is contained in:
parent
237730a196
commit
5416af7af6
|
@ -947,12 +947,12 @@ void ThinLTOCodeGenerator::run() {
|
|||
std::vector<int> ModulesOrdering;
|
||||
ModulesOrdering.resize(Modules.size());
|
||||
std::iota(ModulesOrdering.begin(), ModulesOrdering.end(), 0);
|
||||
std::sort(ModulesOrdering.begin(), ModulesOrdering.end(),
|
||||
[&](int LeftIndex, int RightIndex) {
|
||||
auto LSize = Modules[LeftIndex].getBuffer().size();
|
||||
auto RSize = Modules[RightIndex].getBuffer().size();
|
||||
return LSize > RSize;
|
||||
});
|
||||
llvm::sort(ModulesOrdering.begin(), ModulesOrdering.end(),
|
||||
[&](int LeftIndex, int RightIndex) {
|
||||
auto LSize = Modules[LeftIndex].getBuffer().size();
|
||||
auto RSize = Modules[RightIndex].getBuffer().size();
|
||||
return LSize > RSize;
|
||||
});
|
||||
|
||||
// Parallel optimizer + codegen
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue