Chromium Code Reviews| Index: src/IceTargetLowering.cpp |
| diff --git a/src/IceTargetLowering.cpp b/src/IceTargetLowering.cpp |
| index 0ee0afa2301929fa5e2596a709f0db2bd03e3886..4f09a6bcbb86f311f19f82eccf482c0563802f95 100644 |
| --- a/src/IceTargetLowering.cpp |
| +++ b/src/IceTargetLowering.cpp |
| @@ -363,7 +363,9 @@ void TargetLowering::getVarStackSlotParams( |
| VarList SpilledVariables; |
| for (Variable *Var : Variables) { |
| if (Var->hasReg()) { |
| - RegsUsed[Var->getRegNum()] = true; |
| + // Rematerializable uses of stack/frame do not count as uses for spilling. |
|
Jim Stichnoth
2015/11/16 22:47:18
stack/frame pointer
|
| + if (!Var->isRematerializable()) |
| + RegsUsed[Var->getRegNum()] = true; |
| continue; |
| } |
| // An argument either does not need a stack slot (if passed in a register) |