forked from OSchip/llvm-project
[WebAssembly] Split the checking from the sorting logic.
Move the check for -1 and identical values outside the vector sorting code. Compare functions need to be able to compare identical elements to be conforming. llvm-svn: 350379
This commit is contained in:
parent
47beee2f3f
commit
e1fef949ae
|
@ -250,11 +250,22 @@ bool LoopFixer::run() {
|
||||||
[&](const MachineBasicBlock *A, const MachineBasicBlock *B) {
|
[&](const MachineBasicBlock *A, const MachineBasicBlock *B) {
|
||||||
auto ANum = A->getNumber();
|
auto ANum = A->getNumber();
|
||||||
auto BNum = B->getNumber();
|
auto BNum = B->getNumber();
|
||||||
assert(ANum != -1 && BNum != -1);
|
|
||||||
assert(ANum != BNum);
|
|
||||||
return ANum < BNum;
|
return ANum < BNum;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
#ifndef NDEBUG
|
||||||
|
for (auto Block : SortedEntries)
|
||||||
|
assert(Block->getNumber() != -1);
|
||||||
|
if (SortedEntries.size() > 1) {
|
||||||
|
for (auto I = SortedEntries.begin(), E = SortedEntries.end() - 1;
|
||||||
|
I != E; ++I) {
|
||||||
|
auto ANum = (*I)->getNumber();
|
||||||
|
auto BNum = (*(std::next(I)))->getNumber();
|
||||||
|
assert(ANum != BNum);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Create a dispatch block which will contain a jump table to the entries.
|
// Create a dispatch block which will contain a jump table to the entries.
|
||||||
MachineBasicBlock *Dispatch = MF.CreateMachineBasicBlock();
|
MachineBasicBlock *Dispatch = MF.CreateMachineBasicBlock();
|
||||||
MF.insert(MF.end(), Dispatch);
|
MF.insert(MF.end(), Dispatch);
|
||||||
|
|
Loading…
Reference in New Issue