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

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

Issue 2861143002: Fix tracing in escape-analysis.cc. (Closed)
Patch Set: Created 3 years, 7 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 unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 owner_(owner) { 161 owner_(owner) {
162 fields_.resize(field_number); 162 fields_.resize(field_number);
163 phi_.resize(field_number, false); 163 phi_.resize(field_number, false);
164 } 164 }
165 165
166 Node* GetField(size_t offset) { return fields_[offset]; } 166 Node* GetField(size_t offset) { return fields_[offset]; }
167 167
168 bool IsCreatedPhi(size_t offset) { return phi_[offset]; } 168 bool IsCreatedPhi(size_t offset) { return phi_[offset]; }
169 169
170 void SetField(size_t offset, Node* node, bool created_phi = false) { 170 void SetField(size_t offset, Node* node, bool created_phi = false) {
171 TRACE(" VirtualObject(%p)[%zu] changes from #%i to #%i\n", this, offset, 171 TRACE(" VirtualObject(%p)[%zu] changes from #%i to #%i\n",
172 static_cast<void*>(this), offset,
172 fields_[offset] ? fields_[offset]->id() : -1, node ? node->id() : -1); 173 fields_[offset] ? fields_[offset]->id() : -1, node ? node->id() : -1);
173 fields_[offset] = node; 174 fields_[offset] = node;
174 phi_[offset] = created_phi; 175 phi_[offset] = created_phi;
175 } 176 }
176 bool IsTracked() const { return status_ & kTracked; } 177 bool IsTracked() const { return status_ & kTracked; }
177 bool IsInitialized() const { return status_ & kInitialized; } 178 bool IsInitialized() const { return status_ & kInitialized; }
178 bool SetInitialized() { return status_ |= kInitialized; } 179 bool SetInitialized() { return status_ |= kInitialized; }
179 VirtualState* owner() const { return owner_; } 180 VirtualState* owner() const { return owner_; }
180 181
181 Node** fields_array() { return &fields_.front(); } 182 Node** fields_array() { return &fields_.front(); }
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 ZoneVector<bool> phi_; 230 ZoneVector<bool> phi_;
230 Node* object_state_; 231 Node* object_state_;
231 VirtualState* owner_; 232 VirtualState* owner_;
232 233
233 DISALLOW_COPY_AND_ASSIGN(VirtualObject); 234 DISALLOW_COPY_AND_ASSIGN(VirtualObject);
234 }; 235 };
235 236
236 DEFINE_OPERATORS_FOR_FLAGS(VirtualObject::StatusFlags) 237 DEFINE_OPERATORS_FOR_FLAGS(VirtualObject::StatusFlags)
237 238
238 bool VirtualObject::UpdateFrom(const VirtualObject& other) { 239 bool VirtualObject::UpdateFrom(const VirtualObject& other) {
239 TRACE("%p.UpdateFrom(%p)\n", this, &other); 240 TRACE("%p.UpdateFrom(%p)\n", static_cast<void*>(this),
241 static_cast<const void*>(&other));
240 bool changed = status_ != other.status_; 242 bool changed = status_ != other.status_;
241 status_ = other.status_; 243 status_ = other.status_;
242 phi_ = other.phi_; 244 phi_ = other.phi_;
243 if (fields_.size() != other.fields_.size()) { 245 if (fields_.size() != other.fields_.size()) {
244 fields_ = other.fields_; 246 fields_ = other.fields_;
245 return true; 247 return true;
246 } 248 }
247 for (size_t i = 0; i < fields_.size(); ++i) { 249 for (size_t i = 0; i < fields_.size(); ++i) {
248 if (fields_[i] != other.fields_[i]) { 250 if (fields_[i] != other.fields_[i]) {
249 changed = true; 251 changed = true;
(...skipping 996 matching lines...) Expand 10 before | Expand all | Expand 10 after
1246 status_analysis_->IsDanglingEffectNode(node)) { 1248 status_analysis_->IsDanglingEffectNode(node)) {
1247 PrintF("Dangeling effect node: #%d (%s)\n", node->id(), 1249 PrintF("Dangeling effect node: #%d (%s)\n", node->id(),
1248 node->op()->mnemonic()); 1250 node->op()->mnemonic());
1249 UNREACHABLE(); 1251 UNREACHABLE();
1250 } 1252 }
1251 #endif // DEBUG 1253 #endif // DEBUG
1252 Node* effect = NodeProperties::GetEffectInput(node); 1254 Node* effect = NodeProperties::GetEffectInput(node);
1253 DCHECK_NOT_NULL(virtual_states_[effect->id()]); 1255 DCHECK_NOT_NULL(virtual_states_[effect->id()]);
1254 if (virtual_states_[node->id()]) { 1256 if (virtual_states_[node->id()]) {
1255 TRACE("Updating virtual state %p at %s#%d from virtual state %p at %s#%d\n", 1257 TRACE("Updating virtual state %p at %s#%d from virtual state %p at %s#%d\n",
1256 virtual_states_[node->id()], node->op()->mnemonic(), node->id(), 1258 static_cast<void*>(virtual_states_[node->id()]),
1257 virtual_states_[effect->id()], effect->op()->mnemonic(), 1259 node->op()->mnemonic(), node->id(),
1258 effect->id()); 1260 static_cast<void*>(virtual_states_[effect->id()]),
1261 effect->op()->mnemonic(), effect->id());
1259 virtual_states_[node->id()]->UpdateFrom(virtual_states_[effect->id()], 1262 virtual_states_[node->id()]->UpdateFrom(virtual_states_[effect->id()],
1260 zone()); 1263 zone());
1261 } else { 1264 } else {
1262 virtual_states_[node->id()] = virtual_states_[effect->id()]; 1265 virtual_states_[node->id()] = virtual_states_[effect->id()];
1263 TRACE("Forwarding object state %p from %s#%d to %s#%d", 1266 TRACE("Forwarding object state %p from %s#%d to %s#%d",
1264 static_cast<void*>(virtual_states_[effect->id()]), 1267 static_cast<void*>(virtual_states_[effect->id()]),
1265 effect->op()->mnemonic(), effect->id(), node->op()->mnemonic(), 1268 effect->op()->mnemonic(), effect->id(), node->op()->mnemonic(),
1266 node->id()); 1269 node->id());
1267 if (status_analysis_->IsEffectBranchPoint(effect)) { 1270 if (status_analysis_->IsEffectBranchPoint(effect)) {
1268 virtual_states_[node->id()]->SetCopyRequired(); 1271 virtual_states_[node->id()]->SetCopyRequired();
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
1773 } 1776 }
1774 } 1777 }
1775 return false; 1778 return false;
1776 } 1779 }
1777 1780
1778 Graph* EscapeAnalysis::graph() const { return status_analysis_->graph(); } 1781 Graph* EscapeAnalysis::graph() const { return status_analysis_->graph(); }
1779 1782
1780 } // namespace compiler 1783 } // namespace compiler
1781 } // namespace internal 1784 } // namespace internal
1782 } // namespace v8 1785 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698