This improves the variable use weight by taking into account use in loops. It
further improves spec2k performance and fixes the regression in ammp. Loops are
identified using an extension to Tarjan's algorithm.
BUG=
R=stichnot@chromium.org
Review URL: https://codereview.chromium.org/1318553003.
diff --git a/src/IceInst.h b/src/IceInst.h
index 6bfd7af..360135a 100644
--- a/src/IceInst.h
+++ b/src/IceInst.h
@@ -693,7 +693,7 @@
}
Operand *getAddr() const { return getSrc(1); }
Operand *getData() const { return getSrc(0); }
- Variable *getRmwBeacon() const { return llvm::dyn_cast<Variable>(getSrc(2)); }
+ Variable *getRmwBeacon() const;
void setRmwBeacon(Variable *Beacon);
void dump(const Cfg *Func) const override;
static bool classof(const Inst *Inst) { return Inst->getKind() == Store; }