| Index: src/IceTargetLoweringX8632.cpp
|
| diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp
|
| index 7630d37624bdd787fcc3f6ce7b2b69913c4fb210..569fd9e126f124431f618ba242ee52ac319efd16 100644
|
| --- a/src/IceTargetLoweringX8632.cpp
|
| +++ b/src/IceTargetLoweringX8632.cpp
|
| @@ -2569,7 +2569,11 @@ void TargetX8632::postLower() {
|
| if (Ctx->getOptLevel() != Opt_m1)
|
| return;
|
| // TODO: Avoid recomputing WhiteList every instruction.
|
| - llvm::SmallBitVector WhiteList = getRegisterSet(RegSet_All, RegSet_None);
|
| + RegSetMask RegInclude = RegSet_All;
|
| + RegSetMask RegExclude = RegSet_None;
|
| + if (hasFramePointer())
|
| + RegExclude |= RegSet_FramePointer;
|
| + llvm::SmallBitVector WhiteList = getRegisterSet(RegInclude, RegExclude);
|
| // Make one pass to black-list pre-colored registers. TODO: If
|
| // there was some prior register allocation pass that made register
|
| // assignments, those registers need to be black-listed here as
|
|
|