Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: src/compiler.h

Issue 231073002: WIP: Parser: delay string internalization. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: internalizing better Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 "allocation.h" 8 #include "allocation.h"
9 #include "ast.h" 9 #include "ast.h"
10 #include "zone.h" 10 #include "zone.h"
11 11
12 namespace v8 { 12 namespace v8 {
13 namespace internal { 13 namespace internal {
14 14
15 class ScriptData; 15 class ScriptData;
16 class HydrogenCodeStub; 16 class HydrogenCodeStub;
17 class ParserSymbolTable;
17 18
18 // ParseRestriction is used to restrict the set of valid statements in a 19 // ParseRestriction is used to restrict the set of valid statements in a
19 // unit of compilation. Restriction violations cause a syntax error. 20 // unit of compilation. Restriction violations cause a syntax error.
20 enum ParseRestriction { 21 enum ParseRestriction {
21 NO_PARSE_RESTRICTION, // All expressions are allowed. 22 NO_PARSE_RESTRICTION, // All expressions are allowed.
22 ONLY_SINGLE_FUNCTION_LITERAL // Only a single FunctionLiteral expression. 23 ONLY_SINGLE_FUNCTION_LITERAL // Only a single FunctionLiteral expression.
23 }; 24 };
24 25
25 enum CachedDataMode { 26 enum CachedDataMode {
26 NO_CACHED_DATA, 27 NO_CACHED_DATA,
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 ASSERT(!OptimizingCompilerThread::IsOptimizerThread(isolate())); 300 ASSERT(!OptimizingCompilerThread::IsOptimizerThread(isolate()));
300 return abort_due_to_dependency_; 301 return abort_due_to_dependency_;
301 } 302 }
302 303
303 bool HasSameOsrEntry(Handle<JSFunction> function, BailoutId osr_ast_id) { 304 bool HasSameOsrEntry(Handle<JSFunction> function, BailoutId osr_ast_id) {
304 return osr_ast_id_ == osr_ast_id && function.is_identical_to(closure_); 305 return osr_ast_id_ == osr_ast_id && function.is_identical_to(closure_);
305 } 306 }
306 307
307 int optimization_id() const { return optimization_id_; } 308 int optimization_id() const { return optimization_id_; }
308 309
310 ParserSymbolTable* symbol_table() const { return symbol_table_; }
311 void SetSymbolTable(ParserSymbolTable* symbol_table) {
312 symbol_table_ = symbol_table;
313 }
314
309 protected: 315 protected:
310 CompilationInfo(Handle<Script> script, 316 CompilationInfo(Handle<Script> script,
311 Zone* zone); 317 Zone* zone);
312 CompilationInfo(Handle<SharedFunctionInfo> shared_info, 318 CompilationInfo(Handle<SharedFunctionInfo> shared_info,
313 Zone* zone); 319 Zone* zone);
314 CompilationInfo(HydrogenCodeStub* stub, 320 CompilationInfo(HydrogenCodeStub* stub,
315 Isolate* isolate, 321 Isolate* isolate,
316 Zone* zone); 322 Zone* zone);
317 323
318 private: 324 private:
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 446
441 // Number of parameters used for compilation of stubs that require arguments. 447 // Number of parameters used for compilation of stubs that require arguments.
442 int parameter_count_; 448 int parameter_count_;
443 449
444 bool this_has_uses_; 450 bool this_has_uses_;
445 451
446 Handle<Foreign> object_wrapper_; 452 Handle<Foreign> object_wrapper_;
447 453
448 int optimization_id_; 454 int optimization_id_;
449 455
456 ParserSymbolTable* symbol_table_;
457
450 DISALLOW_COPY_AND_ASSIGN(CompilationInfo); 458 DISALLOW_COPY_AND_ASSIGN(CompilationInfo);
451 }; 459 };
452 460
453 461
454 // Exactly like a CompilationInfo, except also creates and enters a 462 // Exactly like a CompilationInfo, except also creates and enters a
455 // Zone on construction and deallocates it on exit. 463 // Zone on construction and deallocates it on exit.
456 class CompilationInfoWithZone: public CompilationInfo { 464 class CompilationInfoWithZone: public CompilationInfo {
457 public: 465 public:
458 explicit CompilationInfoWithZone(Handle<Script> script) 466 explicit CompilationInfoWithZone(Handle<Script> script)
459 : CompilationInfo(script, &zone_), 467 : CompilationInfo(script, &zone_),
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
676 unsigned info_zone_start_allocation_size_; 684 unsigned info_zone_start_allocation_size_;
677 ElapsedTimer timer_; 685 ElapsedTimer timer_;
678 686
679 DISALLOW_COPY_AND_ASSIGN(CompilationPhase); 687 DISALLOW_COPY_AND_ASSIGN(CompilationPhase);
680 }; 688 };
681 689
682 690
683 } } // namespace v8::internal 691 } } // namespace v8::internal
684 692
685 #endif // V8_COMPILER_H_ 693 #endif // V8_COMPILER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698