Index: src/IceTargetLoweringX8632.cpp |
diff --git a/src/IceTargetLoweringX8632.cpp b/src/IceTargetLoweringX8632.cpp |
index 89a3ebd65146a4419dcfb9ddbe8923f0d39dd300..9b532eecd228bd2474c4b24e27fcb1213c3d875d 100644 |
--- a/src/IceTargetLoweringX8632.cpp |
+++ b/src/IceTargetLoweringX8632.cpp |
@@ -190,7 +190,7 @@ void TargetX8632::lowerCall(const InstCall *Instr) { |
// Generate a FakeUse of register arguments so that they do not get dead |
// code eliminated as a result of the FakeKill of scratch registers after |
// the call. |
- Context.insert(InstFakeUse::create(Func, Reg)); |
+ Context.insert<InstFakeUse>(Reg); |
} |
// Generate the call instruction. Assign its result to a temporary with high |
// register allocation weight. |
@@ -244,15 +244,14 @@ void TargetX8632::lowerCall(const InstCall *Instr) { |
CallTarget = CallTargetVar; |
} |
} |
- Inst *NewCall = Traits::Insts::Call::create(Func, ReturnReg, CallTarget); |
- Context.insert(NewCall); |
+ auto *NewCall = Context.insert<Traits::Insts::Call>(ReturnReg, CallTarget); |
if (NeedSandboxing) |
_bundle_unlock(); |
if (ReturnRegHi) |
- Context.insert(InstFakeDef::create(Func, ReturnRegHi)); |
+ Context.insert<InstFakeDef>(ReturnRegHi); |
// Insert a register-kill pseudo instruction. |
- Context.insert(InstFakeKill::create(Func, NewCall)); |
+ Context.insert<InstFakeKill>(NewCall); |
if (Dest != nullptr && isScalarFloatingType(Dest->getType())) { |
// Special treatment for an FP function which returns its result in st(0). |
@@ -262,13 +261,12 @@ void TargetX8632::lowerCall(const InstCall *Instr) { |
_fstp(Dest); |
// Create a fake use of Dest in case it actually isn't used, because st(0) |
// still needs to be popped. |
- Context.insert(InstFakeUse::create(Func, Dest)); |
+ Context.insert<InstFakeUse>(Dest); |
} |
// Generate a FakeUse to keep the call live if necessary. |
if (Instr->hasSideEffects() && ReturnReg) { |
- Inst *FakeUse = InstFakeUse::create(Func, ReturnReg); |
- Context.insert(FakeUse); |
+ Context.insert<InstFakeUse>(ReturnReg); |
} |
if (!Dest) |
@@ -324,7 +322,7 @@ void TargetX8632::lowerArguments() { |
Arg->setIsArg(false); |
Args[I] = RegisterArg; |
- Context.insert(InstAssign::create(Func, Arg, RegisterArg)); |
+ Context.insert<InstAssign>(Arg, RegisterArg); |
} |
} |
@@ -339,7 +337,7 @@ void TargetX8632::lowerRet(const InstRet *Inst) { |
Variable *edx = |
legalizeToReg(hiOperand(Src0), Traits::RegisterSet::Reg_edx); |
Reg = eax; |
- Context.insert(InstFakeUse::create(Func, edx)); |
+ Context.insert<InstFakeUse>(edx); |
} else if (isScalarFloatingType(Src0->getType())) { |
_fld(Src0); |
} else if (isVectorType(Src0->getType())) { |
@@ -469,7 +467,7 @@ void TargetX8632::addProlog(CfgNode *Node) { |
_push(ebp); |
_mov(ebp, esp); |
// Keep ebp live for late-stage liveness analysis (e.g. asm-verbose mode). |
- Context.insert(InstFakeUse::create(Func, ebp)); |
+ Context.insert<InstFakeUse>(ebp); |
} |
// Align the variables area. SpillAreaPaddingBytes is the size of the region |
@@ -633,7 +631,7 @@ void TargetX8632::addEpilog(CfgNode *Node) { |
// For late-stage liveness analysis (e.g. asm-verbose mode), adding a fake |
// use of esp before the assignment of esp=ebp keeps previous esp |
// adjustments from being dead-code eliminated. |
- Context.insert(InstFakeUse::create(Func, esp)); |
+ Context.insert<InstFakeUse>(esp); |
_mov(esp, ebp); |
_pop(ebp); |
} else { |
@@ -676,7 +674,7 @@ void TargetX8632::addEpilog(CfgNode *Node) { |
lowerIndirectJump(T_ecx); |
if (RI->getSrcSize()) { |
auto *RetValue = llvm::cast<Variable>(RI->getSrc(0)); |
- Context.insert(InstFakeUse::create(Func, RetValue)); |
+ Context.insert<InstFakeUse>(RetValue); |
} |
RI->setDeleted(); |
} |