| 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 <limits> | 5 #include <limits> |
| 6 | 6 |
| 7 #include "src/ast/scopes.h" | 7 #include "src/ast/scopes.h" |
| 8 #include "src/compiler/access-builder.h" | 8 #include "src/compiler/access-builder.h" |
| 9 #include "src/compiler/change-lowering.h" | 9 #include "src/compiler/change-lowering.h" |
| 10 #include "src/compiler/control-builders.h" | 10 #include "src/compiler/control-builders.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 void LowerAllNodesAndLowerChanges() { | 60 void LowerAllNodesAndLowerChanges() { |
| 61 this->End(); | 61 this->End(); |
| 62 typer.Run(); | 62 typer.Run(); |
| 63 lowering.LowerAllNodes(); | 63 lowering.LowerAllNodes(); |
| 64 | 64 |
| 65 Schedule* schedule = Scheduler::ComputeSchedule(this->zone(), this->graph(), | 65 Schedule* schedule = Scheduler::ComputeSchedule(this->zone(), this->graph(), |
| 66 Scheduler::kNoFlags); | 66 Scheduler::kNoFlags); |
| 67 EffectControlLinearizer linearizer(&jsgraph, schedule, this->zone()); | 67 EffectControlLinearizer linearizer(&jsgraph, schedule, this->zone()); |
| 68 linearizer.Run(); | 68 linearizer.Run(); |
| 69 | 69 |
| 70 ChangeLowering lowering(&jsgraph); | |
| 71 GraphReducer reducer(this->zone(), this->graph()); | 70 GraphReducer reducer(this->zone(), this->graph()); |
| 71 ChangeLowering lowering(&reducer, &jsgraph); |
| 72 reducer.AddReducer(&lowering); | 72 reducer.AddReducer(&lowering); |
| 73 reducer.ReduceGraph(); | 73 reducer.ReduceGraph(); |
| 74 Verifier::Run(this->graph()); | 74 Verifier::Run(this->graph()); |
| 75 } | 75 } |
| 76 | 76 |
| 77 void CheckNumberCall(double expected, double input) { | 77 void CheckNumberCall(double expected, double input) { |
| 78 // TODO(titzer): make calls to NewNumber work in cctests. | 78 // TODO(titzer): make calls to NewNumber work in cctests. |
| 79 if (expected <= Smi::kMinValue) return; | 79 if (expected <= Smi::kMinValue) return; |
| 80 if (expected >= Smi::kMaxValue) return; | 80 if (expected >= Smi::kMaxValue) return; |
| 81 Handle<Object> num = factory()->NewNumber(input); | 81 Handle<Object> num = factory()->NewNumber(input); |
| (...skipping 649 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 731 | 731 |
| 732 void LowerAllNodesAndLowerChanges() { | 732 void LowerAllNodesAndLowerChanges() { |
| 733 SourcePositionTable table(jsgraph.graph()); | 733 SourcePositionTable table(jsgraph.graph()); |
| 734 SimplifiedLowering(&jsgraph, jsgraph.zone(), &table).LowerAllNodes(); | 734 SimplifiedLowering(&jsgraph, jsgraph.zone(), &table).LowerAllNodes(); |
| 735 | 735 |
| 736 Schedule* schedule = Scheduler::ComputeSchedule(this->zone(), this->graph(), | 736 Schedule* schedule = Scheduler::ComputeSchedule(this->zone(), this->graph(), |
| 737 Scheduler::kNoFlags); | 737 Scheduler::kNoFlags); |
| 738 EffectControlLinearizer linearizer(&jsgraph, schedule, this->zone()); | 738 EffectControlLinearizer linearizer(&jsgraph, schedule, this->zone()); |
| 739 linearizer.Run(); | 739 linearizer.Run(); |
| 740 | 740 |
| 741 ChangeLowering lowering(&jsgraph); | |
| 742 GraphReducer reducer(this->zone(), this->graph()); | 741 GraphReducer reducer(this->zone(), this->graph()); |
| 742 ChangeLowering lowering(&reducer, &jsgraph); |
| 743 reducer.AddReducer(&lowering); | 743 reducer.AddReducer(&lowering); |
| 744 reducer.ReduceGraph(); | 744 reducer.ReduceGraph(); |
| 745 Verifier::Run(this->graph()); | 745 Verifier::Run(this->graph()); |
| 746 } | 746 } |
| 747 | 747 |
| 748 // Inserts the node as the return value of the graph. | 748 // Inserts the node as the return value of the graph. |
| 749 Node* Return(Node* node) { | 749 Node* Return(Node* node) { |
| 750 ret->ReplaceInput(0, node); | 750 ret->ReplaceInput(0, node); |
| 751 return node; | 751 return node; |
| 752 } | 752 } |
| (...skipping 1186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1939 t.Return(use); | 1939 t.Return(use); |
| 1940 t.Lower(); | 1940 t.Lower(); |
| 1941 | 1941 |
| 1942 CHECK_EQ(d.expected, PhiRepresentationOf(phi->op())); | 1942 CHECK_EQ(d.expected, PhiRepresentationOf(phi->op())); |
| 1943 } | 1943 } |
| 1944 } | 1944 } |
| 1945 | 1945 |
| 1946 } // namespace compiler | 1946 } // namespace compiler |
| 1947 } // namespace internal | 1947 } // namespace internal |
| 1948 } // namespace v8 | 1948 } // namespace v8 |
| OLD | NEW |