mirror of
https://github.com/RPCSX/llvm.git
synced 2024-11-27 13:40:30 +00:00
use valid bits to avoid unnecessary machine trace metric recomputations
Although this does cut the number of traces recomputed by ~10% for the test case mentioned in http://reviews.llvm.org/D10460, it doesn't make a dent in the overall performance. That example needs to be more selective when invalidating traces. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241393 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
57dee47d17
commit
2244d521c0
@ -1131,11 +1131,16 @@ computeInstrHeights(const MachineBasicBlock *MBB) {
|
||||
|
||||
MachineTraceMetrics::Trace
|
||||
MachineTraceMetrics::Ensemble::getTrace(const MachineBasicBlock *MBB) {
|
||||
// FIXME: Check cache tags, recompute as needed.
|
||||
computeTrace(MBB);
|
||||
computeInstrDepths(MBB);
|
||||
computeInstrHeights(MBB);
|
||||
return Trace(*this, BlockInfo[MBB->getNumber()]);
|
||||
TraceBlockInfo &TBI = BlockInfo[MBB->getNumber()];
|
||||
|
||||
if (!TBI.hasValidDepth() || !TBI.hasValidHeight())
|
||||
computeTrace(MBB);
|
||||
if (!TBI.HasValidInstrDepths)
|
||||
computeInstrDepths(MBB);
|
||||
if (!TBI.HasValidInstrHeights)
|
||||
computeInstrHeights(MBB);
|
||||
|
||||
return Trace(*this, TBI);
|
||||
}
|
||||
|
||||
unsigned
|
||||
|
Loading…
Reference in New Issue
Block a user