Index: src/IceTargetLowering.cpp |
diff --git a/src/IceTargetLowering.cpp b/src/IceTargetLowering.cpp |
index 28a7ca7828fa8c2c059f97e58bc22a738b9156a6..bd5c11b47e4fd0548a6084bf3a0c75a4516f0f42 100644 |
--- a/src/IceTargetLowering.cpp |
+++ b/src/IceTargetLowering.cpp |
@@ -459,6 +459,26 @@ void TargetLowering::markRedefinitions() { |
} |
} |
+void TargetLowering::addFakeDefUses(const Inst *Instr) { |
+ FOREACH_VAR_IN_INST(Var, *Instr) { |
+ if (auto *Var64 = llvm::dyn_cast<Variable64On32>(Var)) { |
+ Context.insert<InstFakeUse>(Var64->getLo()); |
+ Context.insert<InstFakeUse>(Var64->getHi()); |
+ } else { |
+ Context.insert<InstFakeUse>(Var); |
+ } |
+ } |
+ Variable *Dest = Instr->getDest(); |
+ if (Dest == nullptr) |
+ return; |
+ if (auto *Var64 = llvm::dyn_cast<Variable64On32>(Dest)) { |
+ Context.insert<InstFakeDef>(Var64->getLo()); |
+ Context.insert<InstFakeDef>(Var64->getHi()); |
+ } else { |
+ Context.insert<InstFakeDef>(Dest); |
+ } |
+} |
+ |
void TargetLowering::sortVarsByAlignment(VarList &Dest, |
const VarList &Source) const { |
Dest = Source; |