| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_COMPILER_H_ | 5 #ifndef V8_COMPILER_H_ |
| 6 #define V8_COMPILER_H_ | 6 #define V8_COMPILER_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/ast.h" | 9 #include "src/ast.h" |
| 10 #include "src/bailout-reason.h" | 10 #include "src/bailout-reason.h" |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 420 osr_expr_stack_height_ = height; | 420 osr_expr_stack_height_ = height; |
| 421 } | 421 } |
| 422 | 422 |
| 423 #if DEBUG | 423 #if DEBUG |
| 424 void PrintAstForTesting(); | 424 void PrintAstForTesting(); |
| 425 #endif | 425 #endif |
| 426 | 426 |
| 427 protected: | 427 protected: |
| 428 CompilationInfo(Handle<SharedFunctionInfo> shared_info, | 428 CompilationInfo(Handle<SharedFunctionInfo> shared_info, |
| 429 Zone* zone); | 429 Zone* zone); |
| 430 CompilationInfo(HydrogenCodeStub* stub, | 430 CompilationInfo(CodeStub* stub, Isolate* isolate, Zone* zone); |
| 431 Isolate* isolate, | |
| 432 Zone* zone); | |
| 433 CompilationInfo(ScriptCompiler::ExternalSourceStream* source_stream, | 431 CompilationInfo(ScriptCompiler::ExternalSourceStream* source_stream, |
| 434 ScriptCompiler::StreamedSource::Encoding encoding, | 432 ScriptCompiler::StreamedSource::Encoding encoding, |
| 435 Isolate* isolate, Zone* zone); | 433 Isolate* isolate, Zone* zone); |
| 436 | 434 |
| 437 | 435 |
| 438 private: | 436 private: |
| 439 Isolate* isolate_; | 437 Isolate* isolate_; |
| 440 | 438 |
| 441 // Compilation mode. | 439 // Compilation mode. |
| 442 // BASE is generated by the full codegen, optionally prepared for bailouts. | 440 // BASE is generated by the full codegen, optionally prepared for bailouts. |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 555 // Exactly like a CompilationInfo, except also creates and enters a | 553 // Exactly like a CompilationInfo, except also creates and enters a |
| 556 // Zone on construction and deallocates it on exit. | 554 // Zone on construction and deallocates it on exit. |
| 557 class CompilationInfoWithZone: public CompilationInfo { | 555 class CompilationInfoWithZone: public CompilationInfo { |
| 558 public: | 556 public: |
| 559 explicit CompilationInfoWithZone(Handle<Script> script) | 557 explicit CompilationInfoWithZone(Handle<Script> script) |
| 560 : CompilationInfo(script, &zone_) {} | 558 : CompilationInfo(script, &zone_) {} |
| 561 explicit CompilationInfoWithZone(Handle<SharedFunctionInfo> shared_info) | 559 explicit CompilationInfoWithZone(Handle<SharedFunctionInfo> shared_info) |
| 562 : CompilationInfo(shared_info, &zone_) {} | 560 : CompilationInfo(shared_info, &zone_) {} |
| 563 explicit CompilationInfoWithZone(Handle<JSFunction> closure) | 561 explicit CompilationInfoWithZone(Handle<JSFunction> closure) |
| 564 : CompilationInfo(closure, &zone_) {} | 562 : CompilationInfo(closure, &zone_) {} |
| 565 CompilationInfoWithZone(HydrogenCodeStub* stub, Isolate* isolate) | 563 CompilationInfoWithZone(CodeStub* stub, Isolate* isolate) |
| 566 : CompilationInfo(stub, isolate, &zone_) {} | 564 : CompilationInfo(stub, isolate, &zone_) {} |
| 567 CompilationInfoWithZone(ScriptCompiler::ExternalSourceStream* stream, | 565 CompilationInfoWithZone(ScriptCompiler::ExternalSourceStream* stream, |
| 568 ScriptCompiler::StreamedSource::Encoding encoding, | 566 ScriptCompiler::StreamedSource::Encoding encoding, |
| 569 Isolate* isolate) | 567 Isolate* isolate) |
| 570 : CompilationInfo(stream, encoding, isolate, &zone_) {} | 568 : CompilationInfo(stream, encoding, isolate, &zone_) {} |
| 571 | 569 |
| 572 // Virtual destructor because a CompilationInfoWithZone has to exit the | 570 // Virtual destructor because a CompilationInfoWithZone has to exit the |
| 573 // zone scope and get rid of dependent maps even when the destructor is | 571 // zone scope and get rid of dependent maps even when the destructor is |
| 574 // called when cast as a CompilationInfo. | 572 // called when cast as a CompilationInfo. |
| 575 virtual ~CompilationInfoWithZone() { | 573 virtual ~CompilationInfoWithZone() { |
| (...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 777 Zone zone_; | 775 Zone zone_; |
| 778 unsigned info_zone_start_allocation_size_; | 776 unsigned info_zone_start_allocation_size_; |
| 779 base::ElapsedTimer timer_; | 777 base::ElapsedTimer timer_; |
| 780 | 778 |
| 781 DISALLOW_COPY_AND_ASSIGN(CompilationPhase); | 779 DISALLOW_COPY_AND_ASSIGN(CompilationPhase); |
| 782 }; | 780 }; |
| 783 | 781 |
| 784 } } // namespace v8::internal | 782 } } // namespace v8::internal |
| 785 | 783 |
| 786 #endif // V8_COMPILER_H_ | 784 #endif // V8_COMPILER_H_ |
| OLD | NEW |