OLD | NEW |
1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 int output_count() const { return output_count_; } | 129 int output_count() const { return output_count_; } |
130 | 130 |
131 static Deoptimizer* New(JSFunction* function, | 131 static Deoptimizer* New(JSFunction* function, |
132 BailoutType type, | 132 BailoutType type, |
133 unsigned bailout_id, | 133 unsigned bailout_id, |
134 Address from, | 134 Address from, |
135 int fp_to_sp_delta, | 135 int fp_to_sp_delta, |
136 Isolate* isolate); | 136 Isolate* isolate); |
137 static Deoptimizer* Grab(Isolate* isolate); | 137 static Deoptimizer* Grab(Isolate* isolate); |
138 | 138 |
| 139 // Makes sure that there is enough room in the relocation |
| 140 // information of a code object to perform lazy deoptimization |
| 141 // patching. If there is not enough room a new relocation |
| 142 // information object is allocated and comments are added until it |
| 143 // is big enough. |
| 144 static void EnsureRelocSpaceForLazyDeoptimization(Handle<Code> code); |
| 145 |
139 // Deoptimize the function now. Its current optimized code will never be run | 146 // Deoptimize the function now. Its current optimized code will never be run |
140 // again and any activations of the optimized code will get deoptimized when | 147 // again and any activations of the optimized code will get deoptimized when |
141 // execution returns. | 148 // execution returns. |
142 static void DeoptimizeFunction(JSFunction* function); | 149 static void DeoptimizeFunction(JSFunction* function); |
143 | 150 |
144 // Deoptimize all functions in the heap. | 151 // Deoptimize all functions in the heap. |
145 static void DeoptimizeAll(); | 152 static void DeoptimizeAll(); |
146 | 153 |
147 static void DeoptimizeGlobalObject(JSObject* object); | 154 static void DeoptimizeGlobalObject(JSObject* object); |
148 | 155 |
(...skipping 386 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
535 Handle<Code> code_; | 542 Handle<Code> code_; |
536 | 543 |
537 // Next pointer for linked list. | 544 // Next pointer for linked list. |
538 DeoptimizingCodeListNode* next_; | 545 DeoptimizingCodeListNode* next_; |
539 }; | 546 }; |
540 | 547 |
541 | 548 |
542 } } // namespace v8::internal | 549 } } // namespace v8::internal |
543 | 550 |
544 #endif // V8_DEOPTIMIZER_H_ | 551 #endif // V8_DEOPTIMIZER_H_ |
OLD | NEW |