mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-05 12:31:33 +00:00
bugpoint: make the number of trim iterations a compile-time constant
Around 10 year ago Chris limited this code to a single iteration by just dropping a break into the loop body. We now make the number of trim iterations a compile time constant to be able to play with it and see if this can improve the bugpoint results. We currently use with '3' still a small and conservative value, but this can be adjusted in the future, if needed. I tried to look for a trivial test case, but did not succeed yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@243247 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6df163bcdf
commit
6db2ad6004
@ -75,6 +75,11 @@ struct ListReducer {
|
||||
// Maximal number of allowed splitting iterations,
|
||||
// before the elements are randomly shuffled.
|
||||
const unsigned MaxIterationsWithoutProgress = 3;
|
||||
|
||||
// Maximal number of allowed single-element trim iterations. We add a
|
||||
// threshhold here as single-element reductions may otherwise take a
|
||||
// very long time to complete.
|
||||
const unsigned MaxTrimIterationsWithoutBackJump = 3;
|
||||
bool ShufflingEnabled = true;
|
||||
|
||||
Backjump:
|
||||
@ -157,6 +162,7 @@ Backjump:
|
||||
if (TheList.size() > 2) {
|
||||
bool Changed = true;
|
||||
std::vector<ElTy> EmptyList;
|
||||
unsigned TrimIterations = 0;
|
||||
while (Changed) { // Trimming loop.
|
||||
Changed = false;
|
||||
|
||||
@ -186,9 +192,9 @@ Backjump:
|
||||
if (!Error.empty())
|
||||
return true;
|
||||
}
|
||||
// This can take a long time if left uncontrolled. For now, don't
|
||||
// iterate.
|
||||
break;
|
||||
if (TrimIterations >= MaxTrimIterationsWithoutBackJump)
|
||||
break;
|
||||
TrimIterations++;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user