| 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 <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "src/v8.h" | 9 #include "src/v8.h" |
| 10 | 10 |
| (...skipping 6786 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6797 Expression* expr, | 6797 Expression* expr, |
| 6798 HValue* object, | 6798 HValue* object, |
| 6799 Handle<String> name, | 6799 Handle<String> name, |
| 6800 HValue* value, | 6800 HValue* value, |
| 6801 bool is_uninitialized) { | 6801 bool is_uninitialized) { |
| 6802 if (is_uninitialized) { | 6802 if (is_uninitialized) { |
| 6803 Add<HDeoptimize>("Insufficient type feedback for generic named access", | 6803 Add<HDeoptimize>("Insufficient type feedback for generic named access", |
| 6804 Deoptimizer::SOFT); | 6804 Deoptimizer::SOFT); |
| 6805 } | 6805 } |
| 6806 if (access_type == LOAD) { | 6806 if (access_type == LOAD) { |
| 6807 HLoadNamedGeneric* result = New<HLoadNamedGeneric>(object, name); | 6807 HLoadNamedGeneric* result = New<HLoadNamedGeneric>( |
| 6808 object, name, expr->AsProperty()->IsOwnProperty()); |
| 6808 if (FLAG_vector_ics) { | 6809 if (FLAG_vector_ics) { |
| 6809 Handle<SharedFunctionInfo> current_shared = | 6810 Handle<SharedFunctionInfo> current_shared = |
| 6810 function_state()->compilation_info()->shared_info(); | 6811 function_state()->compilation_info()->shared_info(); |
| 6811 result->SetVectorAndSlot( | 6812 result->SetVectorAndSlot( |
| 6812 handle(current_shared->feedback_vector(), isolate()), | 6813 handle(current_shared->feedback_vector(), isolate()), |
| 6813 expr->AsProperty()->PropertyFeedbackSlot()); | 6814 expr->AsProperty()->PropertyFeedbackSlot()); |
| 6814 } | 6815 } |
| 6815 return result; | 6816 return result; |
| 6816 } else { | 6817 } else { |
| 6817 return New<HStoreNamedGeneric>(object, name, value, function_strict_mode()); | 6818 return New<HStoreNamedGeneric>(object, name, value, function_strict_mode()); |
| 6818 } | 6819 } |
| 6819 } | 6820 } |
| 6820 | 6821 |
| 6821 | 6822 |
| 6822 | 6823 |
| 6823 HInstruction* HOptimizedGraphBuilder::BuildKeyedGeneric( | 6824 HInstruction* HOptimizedGraphBuilder::BuildKeyedGeneric( |
| 6824 PropertyAccessType access_type, | 6825 PropertyAccessType access_type, |
| 6825 Expression* expr, | 6826 Expression* expr, |
| 6826 HValue* object, | 6827 HValue* object, |
| 6827 HValue* key, | 6828 HValue* key, |
| 6828 HValue* value) { | 6829 HValue* value) { |
| 6829 if (access_type == LOAD) { | 6830 if (access_type == LOAD) { |
| 6830 HLoadKeyedGeneric* result = New<HLoadKeyedGeneric>(object, key); | 6831 HLoadKeyedGeneric* result = New<HLoadKeyedGeneric>( |
| 6832 object, key, expr->AsProperty()->IsOwnProperty()); |
| 6831 if (FLAG_vector_ics) { | 6833 if (FLAG_vector_ics) { |
| 6832 Handle<SharedFunctionInfo> current_shared = | 6834 Handle<SharedFunctionInfo> current_shared = |
| 6833 function_state()->compilation_info()->shared_info(); | 6835 function_state()->compilation_info()->shared_info(); |
| 6834 result->SetVectorAndSlot( | 6836 result->SetVectorAndSlot( |
| 6835 handle(current_shared->feedback_vector(), isolate()), | 6837 handle(current_shared->feedback_vector(), isolate()), |
| 6836 expr->AsProperty()->PropertyFeedbackSlot()); | 6838 expr->AsProperty()->PropertyFeedbackSlot()); |
| 6837 } | 6839 } |
| 6838 return result; | 6840 return result; |
| 6839 } else { | 6841 } else { |
| 6840 return New<HStoreKeyedGeneric>(object, key, value, function_strict_mode()); | 6842 return New<HStoreKeyedGeneric>(object, key, value, function_strict_mode()); |
| (...skipping 5640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 12481 if (ShouldProduceTraceOutput()) { | 12483 if (ShouldProduceTraceOutput()) { |
| 12482 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 12484 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 12483 } | 12485 } |
| 12484 | 12486 |
| 12485 #ifdef DEBUG | 12487 #ifdef DEBUG |
| 12486 graph_->Verify(false); // No full verify. | 12488 graph_->Verify(false); // No full verify. |
| 12487 #endif | 12489 #endif |
| 12488 } | 12490 } |
| 12489 | 12491 |
| 12490 } } // namespace v8::internal | 12492 } } // namespace v8::internal |
| OLD | NEW |