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

Side by Side Diff: src/objects.h

Issue 1205783003: Simplify interface to optimized code map lookup. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@local_opt-code-map-1
Patch Set: Created 5 years, 6 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
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_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 6540 matching lines...) Expand 10 before | Expand all | Expand 10 after
6551 k##name, 6551 k##name,
6552 FUNCTIONS_WITH_ID_LIST(DECLARE_FUNCTION_ID) 6552 FUNCTIONS_WITH_ID_LIST(DECLARE_FUNCTION_ID)
6553 ATOMIC_FUNCTIONS_WITH_ID_LIST(DECLARE_FUNCTION_ID) 6553 ATOMIC_FUNCTIONS_WITH_ID_LIST(DECLARE_FUNCTION_ID)
6554 #undef DECLARE_FUNCTION_ID 6554 #undef DECLARE_FUNCTION_ID
6555 // Fake id for a special case of Math.pow. Note, it continues the 6555 // Fake id for a special case of Math.pow. Note, it continues the
6556 // list of math functions. 6556 // list of math functions.
6557 kMathPowHalf 6557 kMathPowHalf
6558 }; 6558 };
6559 6559
6560 6560
6561 // Result of searching in an optimized code map of a SharedFunctionInfo. Note
6562 // that {code == nullptr} indicates that no entry has been found.
6563 struct CodeAndLiterals {
6564 Code* code; // Cached optimized code.
6565 FixedArray* literals; // Cached literals array.
6566 };
6567
6568
6561 // SharedFunctionInfo describes the JSFunction information that can be 6569 // SharedFunctionInfo describes the JSFunction information that can be
6562 // shared by multiple instances of the function. 6570 // shared by multiple instances of the function.
6563 class SharedFunctionInfo: public HeapObject { 6571 class SharedFunctionInfo: public HeapObject {
6564 public: 6572 public:
6565 // [name]: Function name. 6573 // [name]: Function name.
6566 DECL_ACCESSORS(name, Object) 6574 DECL_ACCESSORS(name, Object)
6567 6575
6568 // [code]: Function code. 6576 // [code]: Function code.
6569 DECL_ACCESSORS(code, Code) 6577 DECL_ACCESSORS(code, Code)
6570 inline void ReplaceCode(Code* code); 6578 inline void ReplaceCode(Code* code);
6571 6579
6572 // [optimized_code_map]: Map from native context to optimized code 6580 // [optimized_code_map]: Map from native context to optimized code
6573 // and a shared literals array or Smi(0) if none. 6581 // and a shared literals array or Smi(0) if none.
6574 DECL_ACCESSORS(optimized_code_map, Object) 6582 DECL_ACCESSORS(optimized_code_map, Object)
6575 6583
6576 // Returns index i of the entry with the specified context and OSR entry. 6584 // Returns entry from optimized code map for specified context and OSR entry.
6577 // At position i - 1 is the context, position i the code, and i + 1 the 6585 // Note that {code == nullptr} indicates no matching entry has been found.
6578 // literals array. Returns -1 when no matching entry is found. 6586 CodeAndLiterals SearchOptimizedCodeMap(Context* native_context,
6579 int SearchOptimizedCodeMap(Context* native_context, BailoutId osr_ast_id); 6587 BailoutId osr_ast_id);
6580
6581 // Installs optimized code from the code map on the given closure. The
6582 // index has to be consistent with a search result as defined above.
6583 FixedArray* GetLiteralsFromOptimizedCodeMap(int index);
6584
6585 Code* GetCodeFromOptimizedCodeMap(int index);
6586 6588
6587 // Clear optimized code map. 6589 // Clear optimized code map.
6588 void ClearOptimizedCodeMap(); 6590 void ClearOptimizedCodeMap();
6589 6591
6590 // Removed a specific optimized code object from the optimized code map. 6592 // Removed a specific optimized code object from the optimized code map.
6591 void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason); 6593 void EvictFromOptimizedCodeMap(Code* optimized_code, const char* reason);
6592 6594
6593 // Unconditionally clear the type feedback vector (including vector ICs). 6595 // Unconditionally clear the type feedback vector (including vector ICs).
6594 void ClearTypeFeedbackInfo(); 6596 void ClearTypeFeedbackInfo();
6595 6597
(...skipping 4206 matching lines...) Expand 10 before | Expand all | Expand 10 after
10802 } else { 10804 } else {
10803 value &= ~(1 << bit_position); 10805 value &= ~(1 << bit_position);
10804 } 10806 }
10805 return value; 10807 return value;
10806 } 10808 }
10807 }; 10809 };
10808 10810
10809 } } // namespace v8::internal 10811 } } // namespace v8::internal
10810 10812
10811 #endif // V8_OBJECTS_H_ 10813 #endif // V8_OBJECTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698