| 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 9328 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9339 call = PreProcessCall(New<HInvokeFunction>( | 9339 call = PreProcessCall(New<HInvokeFunction>( |
| 9340 function, expr->target(), argument_count)); | 9340 function, expr->target(), argument_count)); |
| 9341 | 9341 |
| 9342 } else { | 9342 } else { |
| 9343 Push(graph()->GetConstantUndefined()); | 9343 Push(graph()->GetConstantUndefined()); |
| 9344 CHECK_ALIVE(VisitExpressions(expr->arguments())); | 9344 CHECK_ALIVE(VisitExpressions(expr->arguments())); |
| 9345 PushArgumentsFromEnvironment(argument_count); | 9345 PushArgumentsFromEnvironment(argument_count); |
| 9346 HCallFunction* call_function = | 9346 HCallFunction* call_function = |
| 9347 New<HCallFunction>(function, argument_count); | 9347 New<HCallFunction>(function, argument_count); |
| 9348 call = call_function; | 9348 call = call_function; |
| 9349 if (expr->is_uninitialized() && expr->HasCallFeedbackSlot()) { | 9349 if (expr->is_uninitialized() && |
| 9350 expr->IsUsingCallFeedbackICSlot(isolate())) { |
| 9350 // We've never seen this call before, so let's have Crankshaft learn | 9351 // We've never seen this call before, so let's have Crankshaft learn |
| 9351 // through the type vector. | 9352 // through the type vector. |
| 9352 Handle<SharedFunctionInfo> current_shared = | 9353 Handle<SharedFunctionInfo> current_shared = |
| 9353 function_state()->compilation_info()->shared_info(); | 9354 function_state()->compilation_info()->shared_info(); |
| 9354 Handle<TypeFeedbackVector> vector = | 9355 Handle<TypeFeedbackVector> vector = |
| 9355 handle(current_shared->feedback_vector(), isolate()); | 9356 handle(current_shared->feedback_vector(), isolate()); |
| 9356 FeedbackVectorICSlot slot = expr->CallFeedbackSlot(); | 9357 FeedbackVectorICSlot slot = expr->CallFeedbackICSlot(); |
| 9357 call_function->SetVectorAndSlot(vector, slot); | 9358 call_function->SetVectorAndSlot(vector, slot); |
| 9358 } | 9359 } |
| 9359 } | 9360 } |
| 9360 } | 9361 } |
| 9361 | 9362 |
| 9362 Drop(1); // Drop the function. | 9363 Drop(1); // Drop the function. |
| 9363 return ast_context()->ReturnInstruction(call, expr->id()); | 9364 return ast_context()->ReturnInstruction(call, expr->id()); |
| 9364 } | 9365 } |
| 9365 | 9366 |
| 9366 | 9367 |
| (...skipping 4110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13477 if (ShouldProduceTraceOutput()) { | 13478 if (ShouldProduceTraceOutput()) { |
| 13478 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13479 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13479 } | 13480 } |
| 13480 | 13481 |
| 13481 #ifdef DEBUG | 13482 #ifdef DEBUG |
| 13482 graph_->Verify(false); // No full verify. | 13483 graph_->Verify(false); // No full verify. |
| 13483 #endif | 13484 #endif |
| 13484 } | 13485 } |
| 13485 | 13486 |
| 13486 } } // namespace v8::internal | 13487 } } // namespace v8::internal |
| OLD | NEW |