Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(15)

Unified Diff: src/IceInst.h

Issue 1368993004: Subzero: Improve usability of liveness-related tools. (Closed) Base URL: https://chromium.googlesource.com/native_client/pnacl-subzero.git@master
Patch Set: Code review changes Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/IceCfgNode.cpp ('k') | src/IceInst.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/IceInst.h
diff --git a/src/IceInst.h b/src/IceInst.h
index d68d201cd8a04fa36e068b1748be8952bf2049f7..a1e51617a360c526e6c27e09ae00ae787de4ca44 100644
--- a/src/IceInst.h
+++ b/src/IceInst.h
@@ -92,8 +92,8 @@ public:
bool hasSideEffects() const { return HasSideEffects; }
- bool isDestNonKillable() const { return IsDestNonKillable; }
- void setDestNonKillable() { IsDestNonKillable = true; }
+ bool isDestRedefined() const { return IsDestRedefined; }
+ void setDestRedefined() { IsDestRedefined = true; }
Variable *getDest() const { return Dest; }
@@ -192,10 +192,15 @@ protected:
/// a volatile load that can't be removed even if its Dest variable is not
/// live.
bool HasSideEffects = false;
- /// IsDestNonKillable means that liveness analysis shouldn't consider this
- /// instruction to kill the Dest variable. This is used when lowering produces
- /// two assignments to the same variable.
- bool IsDestNonKillable = false;
+ /// IsDestRedefined indicates that this instruction is not the first
+ /// definition of Dest in the basic block. The effect is that liveness
+ /// analysis shouldn't consider this instruction to be the start of Dest's
+ /// live range; rather, there is some other instruction earlier in the basic
+ /// block with the same Dest. This is maintained because liveness analysis
+ /// has an invariant (primarily for performance reasons) that any Variable's
+ /// live range recorded in a basic block has at most one start and at most one
+ /// end.
+ bool IsDestRedefined = false;
Variable *Dest;
const SizeT MaxSrcs; // only used for assert
« no previous file with comments | « src/IceCfgNode.cpp ('k') | src/IceInst.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698