forked from OSchip/llvm-project
SROA: Microoptimization: Remove dead entries first, then sort.
While there replace an explicit struct with std::mem_fun. llvm-svn: 186761
This commit is contained in:
parent
38af2a2158
commit
08e5070bf5
|
@ -653,12 +653,6 @@ private:
|
|||
}
|
||||
};
|
||||
|
||||
namespace {
|
||||
struct IsSliceDead {
|
||||
bool operator()(const Slice &S) { return S.isDead(); }
|
||||
};
|
||||
}
|
||||
|
||||
AllocaSlices::AllocaSlices(const DataLayout &DL, AllocaInst &AI)
|
||||
:
|
||||
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||
|
@ -676,12 +670,13 @@ AllocaSlices::AllocaSlices(const DataLayout &DL, AllocaInst &AI)
|
|||
return;
|
||||
}
|
||||
|
||||
Slices.erase(std::remove_if(Slices.begin(), Slices.end(),
|
||||
std::mem_fun_ref(&Slice::isDead)),
|
||||
Slices.end());
|
||||
|
||||
// Sort the uses. This arranges for the offsets to be in ascending order,
|
||||
// and the sizes to be in descending order.
|
||||
std::sort(Slices.begin(), Slices.end());
|
||||
|
||||
Slices.erase(std::remove_if(Slices.begin(), Slices.end(), IsSliceDead()),
|
||||
Slices.end());
|
||||
}
|
||||
|
||||
#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
|
||||
|
|
Loading…
Reference in New Issue