| Index: src/IceTargetLoweringX86BaseImpl.h
|
| diff --git a/src/IceTargetLoweringX86BaseImpl.h b/src/IceTargetLoweringX86BaseImpl.h
|
| index 8f372196779cc6b3c068655afb1ccd4ff3948165..09dfd769a717e2272c7dc93f745f76dcd6148ae0 100644
|
| --- a/src/IceTargetLoweringX86BaseImpl.h
|
| +++ b/src/IceTargetLoweringX86BaseImpl.h
|
| @@ -1317,6 +1317,10 @@ void TargetX86Base<Machine>::lowerShift64(InstArithmetic::OpKind Op,
|
| template <class Machine>
|
| void TargetX86Base<Machine>::lowerArithmetic(const InstArithmetic *Inst) {
|
| Variable *Dest = Inst->getDest();
|
| + if (Dest->isRematerializable()) {
|
| + Context.insert(InstFakeDef::create(Func, Dest));
|
| + return;
|
| + }
|
| Type Ty = Dest->getType();
|
| Operand *Src0 = legalize(Inst->getSrc(0));
|
| Operand *Src1 = legalize(Inst->getSrc(1));
|
| @@ -1897,6 +1901,10 @@ void TargetX86Base<Machine>::lowerArithmetic(const InstArithmetic *Inst) {
|
| template <class Machine>
|
| void TargetX86Base<Machine>::lowerAssign(const InstAssign *Inst) {
|
| Variable *Dest = Inst->getDest();
|
| + if (Dest->isRematerializable()) {
|
| + Context.insert(InstFakeDef::create(Func, Dest));
|
| + return;
|
| + }
|
| Operand *Src0 = Inst->getSrc(0);
|
| assert(Dest->getType() == Src0->getType());
|
| if (!Traits::Is64Bit && Dest->getType() == IceType_i64) {
|
|
|