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/code-assembler.h" | 5 #include "src/compiler/code-assembler.h" |
6 | 6 |
7 #include <ostream> | 7 #include <ostream> |
8 | 8 |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/compiler/graph.h" | 10 #include "src/compiler/graph.h" |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
58 InstructionSelector::AlignmentRequirements())), | 58 InstructionSelector::AlignmentRequirements())), |
59 flags_(flags), | 59 flags_(flags), |
60 name_(name), | 60 name_(name), |
61 code_generated_(false), | 61 code_generated_(false), |
62 variables_(zone) {} | 62 variables_(zone) {} |
63 | 63 |
64 CodeAssemblerState::~CodeAssemblerState() {} | 64 CodeAssemblerState::~CodeAssemblerState() {} |
65 | 65 |
66 CodeAssembler::~CodeAssembler() {} | 66 CodeAssembler::~CodeAssembler() {} |
67 | 67 |
| 68 class BreakOnNodeDecorator final : public GraphDecorator { |
| 69 public: |
| 70 explicit BreakOnNodeDecorator(NodeId node_id) : node_id_(node_id) {} |
| 71 |
| 72 void Decorate(Node* node) final { |
| 73 if (node->id() == node_id_) { |
| 74 base::OS::DebugBreak(); |
| 75 } |
| 76 } |
| 77 |
| 78 private: |
| 79 NodeId node_id_; |
| 80 }; |
| 81 |
| 82 void CodeAssembler::BreakOnNode(int node_id) { |
| 83 Graph* graph = raw_assembler()->graph(); |
| 84 Zone* zone = graph->zone(); |
| 85 GraphDecorator* decorator = |
| 86 new (zone) BreakOnNodeDecorator(static_cast<NodeId>(node_id)); |
| 87 graph->AddDecorator(decorator); |
| 88 } |
| 89 |
68 void CodeAssembler::CallPrologue() {} | 90 void CodeAssembler::CallPrologue() {} |
69 | 91 |
70 void CodeAssembler::CallEpilogue() {} | 92 void CodeAssembler::CallEpilogue() {} |
71 | 93 |
72 // static | 94 // static |
73 Handle<Code> CodeAssembler::GenerateCode(CodeAssemblerState* state, | 95 Handle<Code> CodeAssembler::GenerateCode(CodeAssemblerState* state, |
74 bool verify_graph) { | 96 bool verify_graph) { |
75 // TODO(ishell): Remove verify_graph parameter and always enable the | 97 // TODO(ishell): Remove verify_graph parameter and always enable the |
76 // verification once all the issues are fixed. | 98 // verification once all the issues are fixed. |
77 DCHECK(!state->code_generated_); | 99 DCHECK(!state->code_generated_); |
(...skipping 1116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1194 } | 1216 } |
1195 } | 1217 } |
1196 } | 1218 } |
1197 | 1219 |
1198 bound_ = true; | 1220 bound_ = true; |
1199 } | 1221 } |
1200 | 1222 |
1201 } // namespace compiler | 1223 } // namespace compiler |
1202 } // namespace internal | 1224 } // namespace internal |
1203 } // namespace v8 | 1225 } // namespace v8 |
OLD | NEW |