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

Unified Diff: src/hydrogen-instructions.h

Issue 163263002: Allow map check hoisting in GVN for stable maps. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 10 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 | « no previous file | test/cctest/test-deoptimization.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/hydrogen-instructions.h
diff --git a/src/hydrogen-instructions.h b/src/hydrogen-instructions.h
index 20a721273ecefcad54578eb1ea6cd0b79c9d2cb7..a2900800cf75fd58d9c34ce7435f26ac20ed341b 100644
--- a/src/hydrogen-instructions.h
+++ b/src/hydrogen-instructions.h
@@ -1557,7 +1557,7 @@ class HCompareMap V8_FINAL : public HUnaryControlInstruction {
ASSERT(!map.is_null());
is_stable_ = map->is_stable();
- if (FLAG_check_elimination && is_stable_) {
+ if (is_stable_) {
map->AddDependentCompilationInfo(
DependentCode::kPrototypeCheckGroup, info);
}
@@ -2700,10 +2700,12 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
void Add(Handle<Map> map, CompilationInfo* info, Zone* zone) {
map_set_.Add(Unique<Map>(map), zone);
is_stable_ = is_stable_ && map->is_stable();
-
- if (FLAG_check_elimination && is_stable_) {
+ if (is_stable_) {
map->AddDependentCompilationInfo(
DependentCode::kPrototypeCheckGroup, info);
+ } else {
+ SetDependsOnFlag(kMaps);
+ SetDependsOnFlag(kElementsKind);
}
if (!has_migration_target_ && map->is_migration_target()) {
@@ -2722,8 +2724,6 @@ class HCheckMaps V8_FINAL : public HTemplateInstruction<2> {
set_representation(Representation::Tagged());
SetFlag(kUseGVN);
SetFlag(kTrackSideEffectDominators);
- SetDependsOnFlag(kMaps);
- SetDependsOnFlag(kElementsKind);
}
bool omit_;
@@ -6506,7 +6506,7 @@ class HStoreNamedField V8_FINAL : public HTemplateInstruction<3> {
has_transition_ = true;
is_stable_ = map->is_stable();
- if (FLAG_check_elimination && is_stable_) {
+ if (is_stable_) {
map->AddDependentCompilationInfo(
DependentCode::kPrototypeCheckGroup, info);
}
« no previous file with comments | « no previous file | test/cctest/test-deoptimization.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698