Chromium Code Reviews| 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/platform/elapsed-timer.h" | 10 #include "src/base/platform/elapsed-timer.h" |
| (...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 306 | 306 |
| 307 | 307 |
| 308 class AstGraphBuilderWithPositions : public AstGraphBuilder { | 308 class AstGraphBuilderWithPositions : public AstGraphBuilder { |
| 309 public: | 309 public: |
| 310 AstGraphBuilderWithPositions(Zone* local_zone, CompilationInfo* info, | 310 AstGraphBuilderWithPositions(Zone* local_zone, CompilationInfo* info, |
| 311 JSGraph* jsgraph, | 311 JSGraph* jsgraph, |
| 312 LoopAssignmentAnalysis* loop_assignment, | 312 LoopAssignmentAnalysis* loop_assignment, |
| 313 SourcePositionTable* source_positions) | 313 SourcePositionTable* source_positions) |
| 314 : AstGraphBuilder(local_zone, info, jsgraph, loop_assignment), | 314 : AstGraphBuilder(local_zone, info, jsgraph, loop_assignment), |
| 315 source_positions_(source_positions), | 315 source_positions_(source_positions), |
| 316 start_position_(info->shared_info()->start_position()) {} | 316 start_position_(info->shared_info()->start_position()), |
| 317 stack_check_(!info->IsStub()) {} | |
| 317 | 318 |
| 318 bool CreateGraph(bool constant_context) { | 319 bool CreateGraph(bool constant_context) { |
|
Michael Starzinger
2015/03/17 17:28:55
nit: Can we add a "bool stack_check" to the Create
Sven Panne
2015/03/18 08:45:55
Done.
| |
| 319 SourcePositionTable::Scope pos_scope(source_positions_, start_position_); | 320 SourcePositionTable::Scope pos_scope(source_positions_, start_position_); |
| 320 return AstGraphBuilder::CreateGraph(constant_context); | 321 return AstGraphBuilder::CreateGraph(constant_context, stack_check_); |
| 321 } | 322 } |
| 322 | 323 |
| 323 #define DEF_VISIT(type) \ | 324 #define DEF_VISIT(type) \ |
| 324 void Visit##type(type* node) OVERRIDE { \ | 325 void Visit##type(type* node) OVERRIDE { \ |
| 325 SourcePositionTable::Scope pos(source_positions_, \ | 326 SourcePositionTable::Scope pos(source_positions_, \ |
| 326 SourcePosition(node->position())); \ | 327 SourcePosition(node->position())); \ |
| 327 AstGraphBuilder::Visit##type(node); \ | 328 AstGraphBuilder::Visit##type(node); \ |
| 328 } | 329 } |
| 329 AST_NODE_LIST(DEF_VISIT) | 330 AST_NODE_LIST(DEF_VISIT) |
| 330 #undef DEF_VISIT | 331 #undef DEF_VISIT |
| 331 | 332 |
| 332 private: | 333 private: |
| 333 SourcePositionTable* source_positions_; | 334 SourcePositionTable* source_positions_; |
| 334 SourcePosition start_position_; | 335 SourcePosition start_position_; |
| 336 bool stack_check_; | |
|
Michael Starzinger
2015/03/17 17:28:55
nit: This field is not required once the above com
Sven Panne
2015/03/18 08:45:55
Done.
| |
| 335 }; | 337 }; |
| 336 | 338 |
| 337 | 339 |
| 338 namespace { | 340 namespace { |
| 339 | 341 |
| 340 class SourcePositionWrapper : public Reducer { | 342 class SourcePositionWrapper : public Reducer { |
| 341 public: | 343 public: |
| 342 SourcePositionWrapper(Reducer* reducer, SourcePositionTable* table) | 344 SourcePositionWrapper(Reducer* reducer, SourcePositionTable* table) |
| 343 : reducer_(reducer), table_(table) {} | 345 : reducer_(reducer), table_(table) {} |
| 344 virtual ~SourcePositionWrapper() {} | 346 virtual ~SourcePositionWrapper() {} |
| (...skipping 850 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1195 | 1197 |
| 1196 if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) { | 1198 if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) { |
| 1197 TurboCfgFile tcf(data->isolate()); | 1199 TurboCfgFile tcf(data->isolate()); |
| 1198 tcf << AsC1VAllocator("CodeGen", data->register_allocator()); | 1200 tcf << AsC1VAllocator("CodeGen", data->register_allocator()); |
| 1199 } | 1201 } |
| 1200 } | 1202 } |
| 1201 | 1203 |
| 1202 } // namespace compiler | 1204 } // namespace compiler |
| 1203 } // namespace internal | 1205 } // namespace internal |
| 1204 } // namespace v8 | 1206 } // namespace v8 |
| OLD | NEW |