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/crankshaft/hydrogen.h" | 5 #include "src/crankshaft/hydrogen.h" |
6 | 6 |
7 #include <sstream> | 7 #include <sstream> |
8 | 8 |
9 #include "src/allocation-site-scopes.h" | 9 #include "src/allocation-site-scopes.h" |
10 #include "src/ast/ast-numbering.h" | 10 #include "src/ast/ast-numbering.h" |
(...skipping 17 matching lines...) Expand all Loading... |
28 #include "src/crankshaft/hydrogen-redundant-phi.h" | 28 #include "src/crankshaft/hydrogen-redundant-phi.h" |
29 #include "src/crankshaft/hydrogen-removable-simulates.h" | 29 #include "src/crankshaft/hydrogen-removable-simulates.h" |
30 #include "src/crankshaft/hydrogen-representation-changes.h" | 30 #include "src/crankshaft/hydrogen-representation-changes.h" |
31 #include "src/crankshaft/hydrogen-sce.h" | 31 #include "src/crankshaft/hydrogen-sce.h" |
32 #include "src/crankshaft/hydrogen-store-elimination.h" | 32 #include "src/crankshaft/hydrogen-store-elimination.h" |
33 #include "src/crankshaft/hydrogen-uint32-analysis.h" | 33 #include "src/crankshaft/hydrogen-uint32-analysis.h" |
34 #include "src/crankshaft/lithium-allocator.h" | 34 #include "src/crankshaft/lithium-allocator.h" |
35 #include "src/crankshaft/typing.h" | 35 #include "src/crankshaft/typing.h" |
36 #include "src/field-type.h" | 36 #include "src/field-type.h" |
37 #include "src/full-codegen/full-codegen.h" | 37 #include "src/full-codegen/full-codegen.h" |
| 38 #include "src/globals.h" |
38 #include "src/ic/call-optimization.h" | 39 #include "src/ic/call-optimization.h" |
39 #include "src/ic/ic.h" | 40 #include "src/ic/ic.h" |
40 // GetRootConstructor | 41 // GetRootConstructor |
41 #include "src/ic/ic-inl.h" | 42 #include "src/ic/ic-inl.h" |
42 #include "src/isolate-inl.h" | 43 #include "src/isolate-inl.h" |
43 #include "src/parsing/parser.h" | 44 #include "src/parsing/parser.h" |
44 #include "src/runtime/runtime.h" | 45 #include "src/runtime/runtime.h" |
45 | 46 |
46 #if V8_TARGET_ARCH_IA32 | 47 #if V8_TARGET_ARCH_IA32 |
47 #include "src/crankshaft/ia32/lithium-codegen-ia32.h" // NOLINT | 48 #include "src/crankshaft/ia32/lithium-codegen-ia32.h" // NOLINT |
(...skipping 23 matching lines...) Expand all Loading... |
71 const auto GetRegConfig = RegisterConfiguration::Crankshaft; | 72 const auto GetRegConfig = RegisterConfiguration::Crankshaft; |
72 | 73 |
73 class HOptimizedGraphBuilderWithPositions : public HOptimizedGraphBuilder { | 74 class HOptimizedGraphBuilderWithPositions : public HOptimizedGraphBuilder { |
74 public: | 75 public: |
75 explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info) | 76 explicit HOptimizedGraphBuilderWithPositions(CompilationInfo* info) |
76 : HOptimizedGraphBuilder(info) {} | 77 : HOptimizedGraphBuilder(info) {} |
77 | 78 |
78 #define DEF_VISIT(type) \ | 79 #define DEF_VISIT(type) \ |
79 void Visit##type(type* node) override { \ | 80 void Visit##type(type* node) override { \ |
80 SourcePosition old_position = SourcePosition::Unknown(); \ | 81 SourcePosition old_position = SourcePosition::Unknown(); \ |
81 if (node->position() != RelocInfo::kNoPosition) { \ | 82 if (node->position() != kNoSourcePosition) { \ |
82 old_position = source_position(); \ | 83 old_position = source_position(); \ |
83 SetSourcePosition(node->position()); \ | 84 SetSourcePosition(node->position()); \ |
84 } \ | 85 } \ |
85 HOptimizedGraphBuilder::Visit##type(node); \ | 86 HOptimizedGraphBuilder::Visit##type(node); \ |
86 if (!old_position.IsUnknown()) { \ | 87 if (!old_position.IsUnknown()) { \ |
87 set_source_position(old_position); \ | 88 set_source_position(old_position); \ |
88 } \ | 89 } \ |
89 } | 90 } |
90 EXPRESSION_NODE_LIST(DEF_VISIT) | 91 EXPRESSION_NODE_LIST(DEF_VISIT) |
91 #undef DEF_VISIT | 92 #undef DEF_VISIT |
92 | 93 |
93 #define DEF_VISIT(type) \ | 94 #define DEF_VISIT(type) \ |
94 void Visit##type(type* node) override { \ | 95 void Visit##type(type* node) override { \ |
95 SourcePosition old_position = SourcePosition::Unknown(); \ | 96 SourcePosition old_position = SourcePosition::Unknown(); \ |
96 if (node->position() != RelocInfo::kNoPosition) { \ | 97 if (node->position() != kNoSourcePosition) { \ |
97 old_position = source_position(); \ | 98 old_position = source_position(); \ |
98 SetSourcePosition(node->position()); \ | 99 SetSourcePosition(node->position()); \ |
99 } \ | 100 } \ |
100 HOptimizedGraphBuilder::Visit##type(node); \ | 101 HOptimizedGraphBuilder::Visit##type(node); \ |
101 if (!old_position.IsUnknown()) { \ | 102 if (!old_position.IsUnknown()) { \ |
102 set_source_position(old_position); \ | 103 set_source_position(old_position); \ |
103 } \ | 104 } \ |
104 } | 105 } |
105 STATEMENT_NODE_LIST(DEF_VISIT) | 106 STATEMENT_NODE_LIST(DEF_VISIT) |
106 #undef DEF_VISIT | 107 #undef DEF_VISIT |
(...skipping 13566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13673 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13674 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
13674 } | 13675 } |
13675 | 13676 |
13676 #ifdef DEBUG | 13677 #ifdef DEBUG |
13677 graph_->Verify(false); // No full verify. | 13678 graph_->Verify(false); // No full verify. |
13678 #endif | 13679 #endif |
13679 } | 13680 } |
13680 | 13681 |
13681 } // namespace internal | 13682 } // namespace internal |
13682 } // namespace v8 | 13683 } // namespace v8 |
OLD | NEW |