| Index: src/IceTargetLoweringX8632Traits.h
|
| diff --git a/src/IceTargetLoweringX8632Traits.h b/src/IceTargetLoweringX8632Traits.h
|
| index e0acbd674ce6f55011a30bad3566230235588ee2..def7843234f569dfa122a56a54d152af2bdd05ff 100644
|
| --- a/src/IceTargetLoweringX8632Traits.h
|
| +++ b/src/IceTargetLoweringX8632Traits.h
|
| @@ -393,13 +393,18 @@ template <> struct MachineTraits<TargetX8632> {
|
| REGX8632_TABLE
|
| #undef X
|
|
|
| - RandomNumberGeneratorWrapper RNG(Ctx->getRNG());
|
| + // Create a random number generator for regalloc randomization.
|
| + // Use function's sequence as the salt.
|
| + RandomNumberGenerator RNG(Ctx->getFlags().getRandomSeed(),
|
| + RS_RegAllocRandomization,
|
| + Func->getSequenceNumber());
|
| + RandomNumberGeneratorWrapper RNGW(RNG);
|
|
|
| // Shuffle the resulting equivalence classes.
|
| for (auto I : EquivalenceClasses) {
|
| const RegisterList &List = I.second;
|
| RegisterList Shuffled(List);
|
| - RandomShuffle(Shuffled.begin(), Shuffled.end(), RNG);
|
| + RandomShuffle(Shuffled.begin(), Shuffled.end(), RNGW);
|
| for (size_t SI = 0, SE = Shuffled.size(); SI < SE; ++SI) {
|
| Permutation[List[SI]] = Shuffled[SI];
|
| ++NumShuffled;
|
|
|