[Bitcode] 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 the comments section in D44363 for a list of all the required patches. Reviewers: pcc, mehdi_amini, dexonsmith Reviewed By: dexonsmith Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D45132 llvm-svn: 329334
This commit is contained in:
@@ -183,7 +183,7 @@ static void predictValueUseListOrderImpl(const Value *V, const Function *F,
|
||||
return;
|
||||
|
||||
bool IsGlobalValue = OM.isGlobalValue(ID);
|
||||
std::sort(List.begin(), List.end(), [&](const Entry &L, const Entry &R) {
|
||||
llvm::sort(List.begin(), List.end(), [&](const Entry &L, const Entry &R) {
|
||||
const Use *LU = L.first;
|
||||
const Use *RU = R.first;
|
||||
if (LU == RU)
|
||||
@@ -744,7 +744,7 @@ void ValueEnumerator::organizeMetadata() {
|
||||
// and then sort by the original/current ID. Since the IDs are guaranteed to
|
||||
// be unique, the result of std::sort will be deterministic. There's no need
|
||||
// for std::stable_sort.
|
||||
std::sort(Order.begin(), Order.end(), [this](MDIndex LHS, MDIndex RHS) {
|
||||
llvm::sort(Order.begin(), Order.end(), [this](MDIndex LHS, MDIndex RHS) {
|
||||
return std::make_tuple(LHS.F, getMetadataTypeOrder(LHS.get(MDs)), LHS.ID) <
|
||||
std::make_tuple(RHS.F, getMetadataTypeOrder(RHS.get(MDs)), RHS.ID);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user