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

Side by Side Diff: src/compiler/escape-analysis.cc

Issue 2488623002: [turbofan] Introduce TypedObjectState common operator. (Closed)
Patch Set: Make MSVC happy. Created 4 years, 1 month 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/compiler/escape-analysis.h" 5 #include "src/compiler/escape-analysis.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "src/base/flags.h" 9 #include "src/base/flags.h"
10 #include "src/bootstrapper.h" 10 #include "src/bootstrapper.h"
(...skipping 1560 matching lines...) Expand 10 before | Expand all | Expand 10 after
1571 return object_state; 1571 return object_state;
1572 } else { 1572 } else {
1573 cache_->fields().clear(); 1573 cache_->fields().clear();
1574 for (size_t i = 0; i < vobj->field_count(); ++i) { 1574 for (size_t i = 0; i < vobj->field_count(); ++i) {
1575 if (Node* field = vobj->GetField(i)) { 1575 if (Node* field = vobj->GetField(i)) {
1576 cache_->fields().push_back(field); 1576 cache_->fields().push_back(field);
1577 } 1577 }
1578 } 1578 }
1579 int input_count = static_cast<int>(cache_->fields().size()); 1579 int input_count = static_cast<int>(cache_->fields().size());
1580 Node* new_object_state = 1580 Node* new_object_state =
1581 graph()->NewNode(common()->ObjectState(input_count, vobj->id()), 1581 graph()->NewNode(common()->ObjectState(input_count), input_count,
1582 input_count, &cache_->fields().front()); 1582 &cache_->fields().front());
1583 vobj->SetObjectState(new_object_state); 1583 vobj->SetObjectState(new_object_state);
1584 TRACE( 1584 TRACE(
1585 "Creating object state #%d for vobj %p (from node #%d) at effect " 1585 "Creating object state #%d for vobj %p (from node #%d) at effect "
1586 "#%d\n", 1586 "#%d\n",
1587 new_object_state->id(), static_cast<void*>(vobj), node->id(), 1587 new_object_state->id(), static_cast<void*>(vobj), node->id(),
1588 effect->id()); 1588 effect->id());
1589 // Now fix uses of other objects. 1589 // Now fix uses of other objects.
1590 for (size_t i = 0; i < vobj->field_count(); ++i) { 1590 for (size_t i = 0; i < vobj->field_count(); ++i) {
1591 if (Node* field = vobj->GetField(i)) { 1591 if (Node* field = vobj->GetField(i)) {
1592 if (Node* field_object_state = 1592 if (Node* field_object_state =
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
1672 } 1672 }
1673 } 1673 }
1674 return false; 1674 return false;
1675 } 1675 }
1676 1676
1677 Graph* EscapeAnalysis::graph() const { return status_analysis_->graph(); } 1677 Graph* EscapeAnalysis::graph() const { return status_analysis_->graph(); }
1678 1678
1679 } // namespace compiler 1679 } // namespace compiler
1680 } // namespace internal 1680 } // namespace internal
1681 } // namespace v8 1681 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698