Index: src/IceOperand.cpp |
diff --git a/src/IceOperand.cpp b/src/IceOperand.cpp |
index e1faf0fa668cbfa2f404b12a08101c2e9e2c509b..8cf181afff3f67927c941fa8d004e23bfc39b2d7 100644 |
--- a/src/IceOperand.cpp |
+++ b/src/IceOperand.cpp |
@@ -350,18 +350,8 @@ void VariablesMetadata::addNode(CfgNode *Node) { |
for (Inst *I : Node->getInsts()) { |
if (I->isDeleted()) |
continue; |
- if (InstFakeKill *Kill = llvm::dyn_cast<InstFakeKill>(I)) { |
- // A FakeKill instruction indicates certain Variables (usually |
- // physical scratch registers) are redefined, so we register |
- // them as defs. |
- for (SizeT SrcNum = 0; SrcNum < I->getSrcSize(); ++SrcNum) { |
- Variable *Var = llvm::cast<Variable>(I->getSrc(SrcNum)); |
- SizeT VarNum = Var->getIndex(); |
- assert(VarNum < Metadata.size()); |
- Metadata[VarNum].markDef(Kind, Kill, Node); |
- } |
- continue; // no point in executing the rest |
- } |
+ // Note: The implicit definitions (and uses) from InstFakeKill are |
+ // deliberately ignored. |
if (Variable *Dest = I->getDest()) { |
SizeT DestNum = Dest->getIndex(); |
assert(DestNum < Metadata.size()); |