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

Side by Side Diff: src/compiler.h

Issue 1812923002: [compiler] Remove CompilationInfo::unoptimized_code field. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 9 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
« no previous file with comments | « no previous file | src/compiler.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/ast/ast.h" 9 #include "src/ast/ast.h"
10 #include "src/bailout-reason.h" 10 #include "src/bailout-reason.h"
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 // ----------------------------------------------------------- 190 // -----------------------------------------------------------
191 191
192 Isolate* isolate() const { 192 Isolate* isolate() const {
193 return isolate_; 193 return isolate_;
194 } 194 }
195 Zone* zone() { return zone_; } 195 Zone* zone() { return zone_; }
196 bool is_osr() const { return !osr_ast_id_.IsNone(); } 196 bool is_osr() const { return !osr_ast_id_.IsNone(); }
197 Handle<Code> code() const { return code_; } 197 Handle<Code> code() const { return code_; }
198 Code::Flags code_flags() const { return code_flags_; } 198 Code::Flags code_flags() const { return code_flags_; }
199 BailoutId osr_ast_id() const { return osr_ast_id_; } 199 BailoutId osr_ast_id() const { return osr_ast_id_; }
200 Handle<Code> unoptimized_code() const { return unoptimized_code_; }
201 int opt_count() const { return opt_count_; } 200 int opt_count() const { return opt_count_; }
202 int num_parameters() const; 201 int num_parameters() const;
203 int num_parameters_including_this() const; 202 int num_parameters_including_this() const;
204 bool is_this_defined() const; 203 bool is_this_defined() const;
205 int num_heap_slots() const; 204 int num_heap_slots() const;
206 205
207 void set_parameter_count(int parameter_count) { 206 void set_parameter_count(int parameter_count) {
208 DCHECK(IsStub()); 207 DCHECK(IsStub());
209 parameter_count_ = parameter_count; 208 parameter_count_ = parameter_count;
210 } 209 }
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
355 // Accessors for the different compilation modes. 354 // Accessors for the different compilation modes.
356 bool IsOptimizing() const { return mode_ == OPTIMIZE; } 355 bool IsOptimizing() const { return mode_ == OPTIMIZE; }
357 bool IsStub() const { return mode_ == STUB; } 356 bool IsStub() const { return mode_ == STUB; }
358 void SetOptimizing() { 357 void SetOptimizing() {
359 DCHECK(has_shared_info()); 358 DCHECK(has_shared_info());
360 SetMode(OPTIMIZE); 359 SetMode(OPTIMIZE);
361 optimization_id_ = isolate()->NextOptimizationId(); 360 optimization_id_ = isolate()->NextOptimizationId();
362 code_flags_ = 361 code_flags_ =
363 Code::KindField::update(code_flags_, Code::OPTIMIZED_FUNCTION); 362 Code::KindField::update(code_flags_, Code::OPTIMIZED_FUNCTION);
364 } 363 }
365 void SetOptimizingForOsr(BailoutId osr_ast_id, Handle<Code> unoptimized) { 364 void SetOptimizingForOsr(BailoutId osr_ast_id) {
366 SetOptimizing(); 365 SetOptimizing();
367 osr_ast_id_ = osr_ast_id; 366 osr_ast_id_ = osr_ast_id;
368 unoptimized_code_ = unoptimized;
369 } 367 }
370 368
371 // Deoptimization support. 369 // Deoptimization support.
372 bool HasDeoptimizationSupport() const { 370 bool HasDeoptimizationSupport() const {
373 return GetFlag(kDeoptimizationSupport); 371 return GetFlag(kDeoptimizationSupport);
374 } 372 }
375 void EnableDeoptimizationSupport() { 373 void EnableDeoptimizationSupport() {
376 DCHECK_EQ(BASE, mode_); 374 DCHECK_EQ(BASE, mode_);
377 SetFlag(kDeoptimizationSupport); 375 SetFlag(kDeoptimizationSupport);
378 } 376 }
379 bool ShouldEnsureSpaceForLazyDeopt() { return !IsStub(); } 377 bool ShouldEnsureSpaceForLazyDeopt() { return !IsStub(); }
380 378
381 bool ExpectsJSReceiverAsReceiver(); 379 bool ExpectsJSReceiverAsReceiver();
382 380
383 // Determines whether or not to insert a self-optimization header. 381 // Determines whether or not to insert a self-optimization header.
384 bool ShouldSelfOptimize(); 382 bool ShouldSelfOptimize();
385 383
386 void set_deferred_handles(DeferredHandles* deferred_handles) { 384 void set_deferred_handles(DeferredHandles* deferred_handles) {
387 DCHECK(deferred_handles_ == NULL); 385 DCHECK(deferred_handles_ == NULL);
388 deferred_handles_ = deferred_handles; 386 deferred_handles_ = deferred_handles;
389 } 387 }
390 388
391 void ReopenHandlesInNewHandleScope() { 389 void ReopenHandlesInNewHandleScope() {
392 unoptimized_code_ = Handle<Code>(*unoptimized_code_); 390 // Empty for now but will be needed once fields move from ParseInfo.
393 } 391 }
394 392
395 void AbortOptimization(BailoutReason reason) { 393 void AbortOptimization(BailoutReason reason) {
396 DCHECK(reason != kNoReason); 394 DCHECK(reason != kNoReason);
397 if (bailout_reason_ == kNoReason) bailout_reason_ = reason; 395 if (bailout_reason_ == kNoReason) bailout_reason_ = reason;
398 SetFlag(kDisableFutureOptimization); 396 SetFlag(kDisableFutureOptimization);
399 } 397 }
400 398
401 void RetryOptimization(BailoutReason reason) { 399 void RetryOptimization(BailoutReason reason) {
402 DCHECK(reason != kNoReason); 400 DCHECK(reason != kNoReason);
(...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after
535 533
536 // The compiled code. 534 // The compiled code.
537 Handle<Code> code_; 535 Handle<Code> code_;
538 536
539 // Used by codegen, ultimately kept rooted by the SharedFunctionInfo. 537 // Used by codegen, ultimately kept rooted by the SharedFunctionInfo.
540 Handle<TypeFeedbackVector> feedback_vector_; 538 Handle<TypeFeedbackVector> feedback_vector_;
541 539
542 // Compilation mode flag and whether deoptimization is allowed. 540 // Compilation mode flag and whether deoptimization is allowed.
543 Mode mode_; 541 Mode mode_;
544 BailoutId osr_ast_id_; 542 BailoutId osr_ast_id_;
545 // The unoptimized code we patched for OSR may not be the shared code
546 // afterwards, since we may need to compile it again to include deoptimization
547 // data. Keep track which code we patched.
548 Handle<Code> unoptimized_code_;
549 543
550 // Holds the bytecode array generated by the interpreter. 544 // Holds the bytecode array generated by the interpreter.
551 // TODO(rmcilroy/mstarzinger): Temporary work-around until compiler.cc is 545 // TODO(rmcilroy/mstarzinger): Temporary work-around until compiler.cc is
552 // refactored to avoid us needing to carry the BytcodeArray around. 546 // refactored to avoid us needing to carry the BytcodeArray around.
553 Handle<BytecodeArray> bytecode_array_; 547 Handle<BytecodeArray> bytecode_array_;
554 548
555 // The zone from which the compilation pipeline working on this 549 // The zone from which the compilation pipeline working on this
556 // CompilationInfo allocates. 550 // CompilationInfo allocates.
557 Zone* zone_; 551 Zone* zone_;
558 552
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 OptimizedCompileJob* job_; 649 OptimizedCompileJob* job_;
656 base::ElapsedTimer timer_; 650 base::ElapsedTimer timer_;
657 base::TimeDelta* location_; 651 base::TimeDelta* location_;
658 }; 652 };
659 }; 653 };
660 654
661 } // namespace internal 655 } // namespace internal
662 } // namespace v8 656 } // namespace v8
663 657
664 #endif // V8_COMPILER_H_ 658 #endif // V8_COMPILER_H_
OLDNEW
« no previous file with comments | « no previous file | src/compiler.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698