| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/js-native-context-specialization.h" | 5 #include "src/compiler/js-native-context-specialization.h" |
| 6 | 6 |
| 7 #include "src/accessors.h" | 7 #include "src/accessors.h" |
| 8 #include "src/compilation-dependencies.h" | 8 #include "src/compilation-dependencies.h" |
| 9 #include "src/compiler/access-builder.h" | 9 #include "src/compiler/access-builder.h" |
| 10 #include "src/compiler/js-graph.h" | 10 #include "src/compiler/js-graph.h" |
| (...skipping 590 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 601 } | 601 } |
| 602 | 602 |
| 603 // Collect the fallthru control as final "exit" control. | 603 // Collect the fallthru control as final "exit" control. |
| 604 exit_controls.push_back(fallthrough_control); | 604 exit_controls.push_back(fallthrough_control); |
| 605 | 605 |
| 606 // TODO(bmeurer/mtrofin): Splintering cannot currently deal with deferred | 606 // TODO(bmeurer/mtrofin): Splintering cannot currently deal with deferred |
| 607 // blocks that contain only a single non-deoptimize instruction (i.e. a | 607 // blocks that contain only a single non-deoptimize instruction (i.e. a |
| 608 // jump). Generating a single Merge here, which joins all the deoptimizing | 608 // jump). Generating a single Merge here, which joins all the deoptimizing |
| 609 // controls would generate a lot of these basic blocks, however. So this | 609 // controls would generate a lot of these basic blocks, however. So this |
| 610 // is disabled for now until splintering is fixed. | 610 // is disabled for now until splintering is fixed. |
| 611 #if 0 | 611 #if 1 |
| 612 // Generate the single "exit" point, where we get if either all map/instance | 612 // Generate the single "exit" point, where we get if either all map/instance |
| 613 // type checks failed, or one of the assumptions inside one of the cases | 613 // type checks failed, or one of the assumptions inside one of the cases |
| 614 // failes (i.e. failing prototype chain check). | 614 // failes (i.e. failing prototype chain check). |
| 615 // TODO(bmeurer): Consider falling back to IC here if deoptimization is | 615 // TODO(bmeurer): Consider falling back to IC here if deoptimization is |
| 616 // disabled. | 616 // disabled. |
| 617 int const exit_control_count = static_cast<int>(exit_controls.size()); | 617 int const exit_control_count = static_cast<int>(exit_controls.size()); |
| 618 Node* exit_control = | 618 Node* exit_control = |
| 619 (exit_control_count == 1) | 619 (exit_control_count == 1) |
| 620 ? exit_controls.front() | 620 ? exit_controls.front() |
| 621 : graph()->NewNode(common()->Merge(exit_control_count), | 621 : graph()->NewNode(common()->Merge(exit_control_count), |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 709 } | 709 } |
| 710 | 710 |
| 711 | 711 |
| 712 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { | 712 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { |
| 713 return jsgraph()->simplified(); | 713 return jsgraph()->simplified(); |
| 714 } | 714 } |
| 715 | 715 |
| 716 } // namespace compiler | 716 } // namespace compiler |
| 717 } // namespace internal | 717 } // namespace internal |
| 718 } // namespace v8 | 718 } // namespace v8 |
| OLD | NEW |