| 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());
|
|
|