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_DEOPTIMIZER_H_ | 5 #ifndef V8_DEOPTIMIZER_H_ |
6 #define V8_DEOPTIMIZER_H_ | 6 #define V8_DEOPTIMIZER_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/macro-assembler.h" | 9 #include "src/macro-assembler.h" |
10 | 10 |
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
486 Address from, | 486 Address from, |
487 int fp_to_sp_delta, | 487 int fp_to_sp_delta, |
488 Isolate* isolate); | 488 Isolate* isolate); |
489 static Deoptimizer* Grab(Isolate* isolate); | 489 static Deoptimizer* Grab(Isolate* isolate); |
490 | 490 |
491 // The returned object with information on the optimized frame needs to be | 491 // The returned object with information on the optimized frame needs to be |
492 // freed before another one can be generated. | 492 // freed before another one can be generated. |
493 static DeoptimizedFrameInfo* DebuggerInspectableFrame(JavaScriptFrame* frame, | 493 static DeoptimizedFrameInfo* DebuggerInspectableFrame(JavaScriptFrame* frame, |
494 int jsframe_index, | 494 int jsframe_index, |
495 Isolate* isolate); | 495 Isolate* isolate); |
496 static void DeleteDebuggerInspectableFrame(DeoptimizedFrameInfo* info, | |
497 Isolate* isolate); | |
498 | 496 |
499 // Makes sure that there is enough room in the relocation | 497 // Makes sure that there is enough room in the relocation |
500 // information of a code object to perform lazy deoptimization | 498 // information of a code object to perform lazy deoptimization |
501 // patching. If there is not enough room a new relocation | 499 // patching. If there is not enough room a new relocation |
502 // information object is allocated and comments are added until it | 500 // information object is allocated and comments are added until it |
503 // is big enough. | 501 // is big enough. |
504 static void EnsureRelocSpaceForLazyDeoptimization(Handle<Code> code); | 502 static void EnsureRelocSpaceForLazyDeoptimization(Handle<Code> code); |
505 | 503 |
506 // Deoptimize the function now. Its current optimized code will never be run | 504 // Deoptimize the function now. Its current optimized code will never be run |
507 // again and any activations of the optimized code will get deoptimized when | 505 // again and any activations of the optimized code will get deoptimized when |
(...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1154 std::vector<Handle<Object> > expression_stack_; | 1152 std::vector<Handle<Object> > expression_stack_; |
1155 int source_position_; | 1153 int source_position_; |
1156 | 1154 |
1157 friend class Deoptimizer; | 1155 friend class Deoptimizer; |
1158 }; | 1156 }; |
1159 | 1157 |
1160 } // namespace internal | 1158 } // namespace internal |
1161 } // namespace v8 | 1159 } // namespace v8 |
1162 | 1160 |
1163 #endif // V8_DEOPTIMIZER_H_ | 1161 #endif // V8_DEOPTIMIZER_H_ |
OLD | NEW |