| 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_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
| 6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
| 7 | 7 |
| 8 #include <iosfwd> | 8 #include <iosfwd> |
| 9 | 9 |
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
| (...skipping 6459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6470 class SharedFunctionInfo: public HeapObject { | 6470 class SharedFunctionInfo: public HeapObject { |
| 6471 public: | 6471 public: |
| 6472 // [name]: Function name. | 6472 // [name]: Function name. |
| 6473 DECL_ACCESSORS(name, Object) | 6473 DECL_ACCESSORS(name, Object) |
| 6474 | 6474 |
| 6475 // [code]: Function code. | 6475 // [code]: Function code. |
| 6476 DECL_ACCESSORS(code, Code) | 6476 DECL_ACCESSORS(code, Code) |
| 6477 inline void ReplaceCode(Code* code); | 6477 inline void ReplaceCode(Code* code); |
| 6478 | 6478 |
| 6479 // [optimized_code_map]: Map from native context to optimized code | 6479 // [optimized_code_map]: Map from native context to optimized code |
| 6480 // and a shared literals array or Smi(0) if none. | 6480 // and a shared literals array. |
| 6481 DECL_ACCESSORS(optimized_code_map, Object) | 6481 DECL_ACCESSORS(optimized_code_map, FixedArray) |
| 6482 | 6482 |
| 6483 // Returns entry from optimized code map for specified context and OSR entry. | 6483 // Returns entry from optimized code map for specified context and OSR entry. |
| 6484 // Note that {code == nullptr, literals == nullptr} indicates no matching | 6484 // Note that {code == nullptr, literals == nullptr} indicates no matching |
| 6485 // entry has been found, whereas {code, literals == nullptr} indicates that | 6485 // entry has been found, whereas {code, literals == nullptr} indicates that |
| 6486 // code is context-independent. | 6486 // code is context-independent. |
| 6487 CodeAndLiterals SearchOptimizedCodeMap(Context* native_context, | 6487 CodeAndLiterals SearchOptimizedCodeMap(Context* native_context, |
| 6488 BailoutId osr_ast_id); | 6488 BailoutId osr_ast_id); |
| 6489 | 6489 |
| 6490 // Clear optimized code map. | 6490 // Clear optimized code map. |
| 6491 void ClearOptimizedCodeMap(); | 6491 void ClearOptimizedCodeMap(); |
| 6492 | 6492 |
| 6493 // We have a special root FixedArray with the right shape and values |
| 6494 // to represent the cleared optimized code map. This predicate checks |
| 6495 // if that root is installed. |
| 6496 inline bool OptimizedCodeMapIsCleared() const; |
| 6497 |
| 6493 // Removes a specific optimized code object from the optimized code map. | 6498 // Removes a specific optimized code object from the optimized code map. |
| 6494 // In case of non-OSR the code reference is cleared from the cache entry but | 6499 // In case of non-OSR the code reference is cleared from the cache entry but |
| 6495 // the entry itself is left in the map in order to proceed sharing literals. | 6500 // the entry itself is left in the map in order to proceed sharing literals. |
| 6496 void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason); | 6501 void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason); |
| 6497 | 6502 |
| 6498 // Trims the optimized code map after entries have been removed. | 6503 // Trims the optimized code map after entries have been removed. |
| 6499 void TrimOptimizedCodeMap(int shrink_by); | 6504 void TrimOptimizedCodeMap(int shrink_by); |
| 6500 | 6505 |
| 6501 // Add a new entry to the optimized code map for context-independent code. | 6506 // Add a new entry to the optimized code map for context-independent code. |
| 6502 static void AddSharedCodeToOptimizedCodeMap(Handle<SharedFunctionInfo> shared, | 6507 static void AddSharedCodeToOptimizedCodeMap(Handle<SharedFunctionInfo> shared, |
| (...skipping 4203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10706 } | 10711 } |
| 10707 return value; | 10712 return value; |
| 10708 } | 10713 } |
| 10709 }; | 10714 }; |
| 10710 | 10715 |
| 10711 | 10716 |
| 10712 } // NOLINT, false-positive due to second-order macros. | 10717 } // NOLINT, false-positive due to second-order macros. |
| 10713 } // NOLINT, false-positive due to second-order macros. | 10718 } // NOLINT, false-positive due to second-order macros. |
| 10714 | 10719 |
| 10715 #endif // V8_OBJECTS_H_ | 10720 #endif // V8_OBJECTS_H_ |
| OLD | NEW |