| Index: src/IceCfgNode.cpp
|
| diff --git a/src/IceCfgNode.cpp b/src/IceCfgNode.cpp
|
| index f6b4a98b46bae12bbeb9fccf87b0587999654089..4de2f577db3c4cbaedbf0939947b8d20fb08e3e1 100644
|
| --- a/src/IceCfgNode.cpp
|
| +++ b/src/IceCfgNode.cpp
|
| @@ -483,6 +483,21 @@ void CfgNode::emit(Cfg *Func) const {
|
| if (Inst->isRedundantAssign())
|
| continue;
|
| (*I)->emit(Func);
|
| + // Update emitted instruction count, plus fill/spill count for
|
| + // Variable operands without a physical register.
|
| + if (uint32_t Count = (*I)->getEmitInstCount()) {
|
| + Func->getContext()->statsUpdateEmitted(Count);
|
| + if (Variable *Dest = (*I)->getDest()) {
|
| + if (!Dest->hasReg())
|
| + Func->getContext()->statsUpdateFills();
|
| + }
|
| + for (SizeT S = 0; S < (*I)->getSrcSize(); ++S) {
|
| + if (Variable *Src = llvm::dyn_cast<Variable>((*I)->getSrc(S))) {
|
| + if (!Src->hasReg())
|
| + Func->getContext()->statsUpdateSpills();
|
| + }
|
| + }
|
| + }
|
| }
|
| }
|
|
|
|
|