OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/pipeline.h" | 5 #include "src/compiler/pipeline.h" |
6 | 6 |
7 #include <fstream> // NOLINT(readability/streams) | 7 #include <fstream> // NOLINT(readability/streams) |
8 #include <sstream> | 8 #include <sstream> |
9 | 9 |
10 #include "src/base/adapters.h" | 10 #include "src/base/adapters.h" |
(...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
547 JSContextSpecialization context_specialization( | 547 JSContextSpecialization context_specialization( |
548 &graph_reducer, data->jsgraph(), | 548 &graph_reducer, data->jsgraph(), |
549 data->info()->is_function_context_specializing() | 549 data->info()->is_function_context_specializing() |
550 ? data->info()->context() | 550 ? data->info()->context() |
551 : MaybeHandle<Context>()); | 551 : MaybeHandle<Context>()); |
552 JSFrameSpecialization frame_specialization(data->info()->osr_frame(), | 552 JSFrameSpecialization frame_specialization(data->info()->osr_frame(), |
553 data->jsgraph()); | 553 data->jsgraph()); |
554 JSGlobalObjectSpecialization global_object_specialization( | 554 JSGlobalObjectSpecialization global_object_specialization( |
555 &graph_reducer, data->jsgraph(), data->native_context(), | 555 &graph_reducer, data->jsgraph(), data->native_context(), |
556 data->info()->dependencies()); | 556 data->info()->dependencies()); |
| 557 JSNativeContextSpecialization::Flags flags = |
| 558 JSNativeContextSpecialization::kNoFlags; |
| 559 if (data->info()->is_bailout_on_uninitialized()) { |
| 560 flags |= JSNativeContextSpecialization::kBailoutOnUninitialized; |
| 561 } |
| 562 if (data->info()->is_deoptimization_enabled()) { |
| 563 flags |= JSNativeContextSpecialization::kDeoptimizationEnabled; |
| 564 } |
557 JSNativeContextSpecialization native_context_specialization( | 565 JSNativeContextSpecialization native_context_specialization( |
558 &graph_reducer, data->jsgraph(), | 566 &graph_reducer, data->jsgraph(), flags, data->native_context(), |
559 data->info()->is_deoptimization_enabled() | 567 data->info()->dependencies(), temp_zone); |
560 ? JSNativeContextSpecialization::kDeoptimizationEnabled | |
561 : JSNativeContextSpecialization::kNoFlags, | |
562 data->native_context(), data->info()->dependencies(), temp_zone); | |
563 JSInliningHeuristic inlining(&graph_reducer, | 568 JSInliningHeuristic inlining(&graph_reducer, |
564 data->info()->is_inlining_enabled() | 569 data->info()->is_inlining_enabled() |
565 ? JSInliningHeuristic::kGeneralInlining | 570 ? JSInliningHeuristic::kGeneralInlining |
566 : JSInliningHeuristic::kRestrictedInlining, | 571 : JSInliningHeuristic::kRestrictedInlining, |
567 temp_zone, data->info(), data->jsgraph()); | 572 temp_zone, data->info(), data->jsgraph()); |
568 AddReducer(data, &graph_reducer, &dead_code_elimination); | 573 AddReducer(data, &graph_reducer, &dead_code_elimination); |
569 AddReducer(data, &graph_reducer, &common_reducer); | 574 AddReducer(data, &graph_reducer, &common_reducer); |
570 if (data->info()->is_frame_specializing()) { | 575 if (data->info()->is_frame_specializing()) { |
571 AddReducer(data, &graph_reducer, &frame_specialization); | 576 AddReducer(data, &graph_reducer, &frame_specialization); |
572 } | 577 } |
(...skipping 924 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1497 } | 1502 } |
1498 | 1503 |
1499 data->DeleteRegisterAllocationZone(); | 1504 data->DeleteRegisterAllocationZone(); |
1500 } | 1505 } |
1501 | 1506 |
1502 Isolate* Pipeline::isolate() const { return info()->isolate(); } | 1507 Isolate* Pipeline::isolate() const { return info()->isolate(); } |
1503 | 1508 |
1504 } // namespace compiler | 1509 } // namespace compiler |
1505 } // namespace internal | 1510 } // namespace internal |
1506 } // namespace v8 | 1511 } // namespace v8 |
OLD | NEW |