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 |