Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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/hydrogen.h" | 5 #include "src/hydrogen.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/v8.h" | 9 #include "src/v8.h" |
| 10 | 10 |
| (...skipping 10481 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 10492 if (left->IsConstant() && | 10492 if (left->IsConstant() && |
| 10493 HConstant::cast(left)->HasStringValue() && | 10493 HConstant::cast(left)->HasStringValue() && |
| 10494 HConstant::cast(left)->StringValue()->length() == 0) { | 10494 HConstant::cast(left)->StringValue()->length() == 0) { |
| 10495 return right; | 10495 return right; |
| 10496 } | 10496 } |
| 10497 if (right->IsConstant() && | 10497 if (right->IsConstant() && |
| 10498 HConstant::cast(right)->HasStringValue() && | 10498 HConstant::cast(right)->HasStringValue() && |
| 10499 HConstant::cast(right)->StringValue()->length() == 0) { | 10499 HConstant::cast(right)->StringValue()->length() == 0) { |
| 10500 return left; | 10500 return left; |
| 10501 } | 10501 } |
| 10502 if (left->IsConstant() && HConstant::cast(left)->HasStringValue() && | |
|
Vyacheslav Egorov (Google)
2015/02/19 15:14:10
Maybe have
Handle<String> left_string = left->Is
| |
| 10503 right->IsConstant() && HConstant::cast(right)->HasStringValue()) { | |
| 10504 return AddUncasted<HStringAdd>( | |
| 10505 left, right, allocation_mode.GetPretenureMode(), | |
| 10506 STRING_ADD_CHECK_NONE, allocation_mode.feedback_site()); | |
| 10507 } | |
| 10502 | 10508 |
| 10503 // Register the dependent code with the allocation site. | 10509 // Register the dependent code with the allocation site. |
| 10504 if (!allocation_mode.feedback_site().is_null()) { | 10510 if (!allocation_mode.feedback_site().is_null()) { |
| 10505 DCHECK(!graph()->info()->IsStub()); | 10511 DCHECK(!graph()->info()->IsStub()); |
| 10506 Handle<AllocationSite> site(allocation_mode.feedback_site()); | 10512 Handle<AllocationSite> site(allocation_mode.feedback_site()); |
| 10507 AllocationSite::RegisterForDeoptOnTenureChange(site, top_info()); | 10513 AllocationSite::RegisterForDeoptOnTenureChange(site, top_info()); |
| 10508 } | 10514 } |
| 10509 | 10515 |
| 10510 // Inline the string addition into the stub when creating allocation | 10516 // Inline the string addition into the stub when creating allocation |
| 10511 // mementos to gather allocation site feedback, or if we can statically | 10517 // mementos to gather allocation site feedback, or if we can statically |
| (...skipping 2922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 13434 if (ShouldProduceTraceOutput()) { | 13440 if (ShouldProduceTraceOutput()) { |
| 13435 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13441 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13436 } | 13442 } |
| 13437 | 13443 |
| 13438 #ifdef DEBUG | 13444 #ifdef DEBUG |
| 13439 graph_->Verify(false); // No full verify. | 13445 graph_->Verify(false); // No full verify. |
| 13440 #endif | 13446 #endif |
| 13441 } | 13447 } |
| 13442 | 13448 |
| 13443 } } // namespace v8::internal | 13449 } } // namespace v8::internal |
| OLD | NEW |