mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-15 07:59:50 +00:00
SROA: Microoptimization: Remove dead entries first, then sort.
While there replace an explicit struct with std::mem_fun. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186761 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a98ce503b9
commit
916cde6416
@ -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
Block a user