Improve alias analysis for HConstants (and fix small snafu in MustAlias).

BUG=
R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/24107003

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16651 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
titzer@chromium.org 2013-09-11 12:59:07 +00:00
parent 488ba18a13
commit 1610803b79

View File

@ -65,7 +65,11 @@ class HAliasAnalyzer : public ZoneObject {
if (a->IsConstant()) return kNoAlias; if (a->IsConstant()) return kNoAlias;
} }
// TODO(titzer): return MustAlias for two equivalent constants. // Constant objects can be distinguished statically.
if (a->IsConstant()) {
// TODO(titzer): DataEquals() is more efficient, but that's protected.
return a->Equals(b) ? kMustAlias : kNoAlias;
}
return kMayAlias; return kMayAlias;
} }
@ -78,7 +82,7 @@ class HAliasAnalyzer : public ZoneObject {
} }
inline bool MustAlias(HValue* a, HValue* b) { inline bool MustAlias(HValue* a, HValue* b) {
return Query(a, b) == kMayAlias; return Query(a, b) == kMustAlias;
} }
inline bool NoAlias(HValue* a, HValue* b) { inline bool NoAlias(HValue* a, HValue* b) {