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

Side by Side Diff: src/stub-cache.h

Issue 6344005: Introduce extra IC state to record additional feedback from IC-s. (Closed)
Patch Set: Last fixes and ports to arm and x64 Created 9 years, 11 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 | « src/objects-inl.h ('k') | src/stub-cache.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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
170 // --- 170 // ---
171 171
172 MUST_USE_RESULT static MaybeObject* ComputeCallField(int argc, 172 MUST_USE_RESULT static MaybeObject* ComputeCallField(int argc,
173 InLoopFlag in_loop, 173 InLoopFlag in_loop,
174 Code::Kind, 174 Code::Kind,
175 String* name, 175 String* name,
176 Object* object, 176 Object* object,
177 JSObject* holder, 177 JSObject* holder,
178 int index); 178 int index);
179 179
180 MUST_USE_RESULT static MaybeObject* ComputeCallConstant(int argc, 180 MUST_USE_RESULT static MaybeObject* ComputeCallConstant(
181 InLoopFlag in_loop, 181 int argc,
182 Code::Kind, 182 InLoopFlag in_loop,
183 String* name, 183 Code::Kind,
184 Object* object, 184 Code::ExtraICState extra_ic_state,
185 JSObject* holder, 185 String* name,
186 JSFunction* function); 186 Object* object,
187 JSObject* holder,
188 JSFunction* function);
187 189
188 MUST_USE_RESULT static MaybeObject* ComputeCallNormal(int argc, 190 MUST_USE_RESULT static MaybeObject* ComputeCallNormal(int argc,
189 InLoopFlag in_loop, 191 InLoopFlag in_loop,
190 Code::Kind, 192 Code::Kind,
191 String* name, 193 String* name,
192 JSObject* receiver); 194 JSObject* receiver);
193 195
194 MUST_USE_RESULT static MaybeObject* ComputeCallInterceptor(int argc, 196 MUST_USE_RESULT static MaybeObject* ComputeCallInterceptor(int argc,
195 Code::Kind, 197 Code::Kind,
196 String* name, 198 String* name,
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 V(StringFromCharCode) \ 655 V(StringFromCharCode) \
654 V(MathFloor) \ 656 V(MathFloor) \
655 V(MathAbs) 657 V(MathAbs)
656 658
657 659
658 class CallStubCompiler: public StubCompiler { 660 class CallStubCompiler: public StubCompiler {
659 public: 661 public:
660 CallStubCompiler(int argc, 662 CallStubCompiler(int argc,
661 InLoopFlag in_loop, 663 InLoopFlag in_loop,
662 Code::Kind kind, 664 Code::Kind kind,
665 Code::ExtraICState extra_ic_state,
663 InlineCacheHolderFlag cache_holder); 666 InlineCacheHolderFlag cache_holder);
664 667
665 MUST_USE_RESULT MaybeObject* CompileCallField(JSObject* object, 668 MUST_USE_RESULT MaybeObject* CompileCallField(JSObject* object,
666 JSObject* holder, 669 JSObject* holder,
667 int index, 670 int index,
668 String* name); 671 String* name);
669 MUST_USE_RESULT MaybeObject* CompileCallConstant(Object* object, 672 MUST_USE_RESULT MaybeObject* CompileCallConstant(Object* object,
670 JSObject* holder, 673 JSObject* holder,
671 JSFunction* function, 674 JSFunction* function,
672 String* name, 675 String* name,
(...skipping 25 matching lines...) Expand all
698 JSObject* holder, \ 701 JSObject* holder, \
699 JSGlobalPropertyCell* cell, \ 702 JSGlobalPropertyCell* cell, \
700 JSFunction* function, \ 703 JSFunction* function, \
701 String* fname); 704 String* fname);
702 CUSTOM_CALL_IC_GENERATORS(DECLARE_CALL_GENERATOR) 705 CUSTOM_CALL_IC_GENERATORS(DECLARE_CALL_GENERATOR)
703 #undef DECLARE_CALL_GENERATOR 706 #undef DECLARE_CALL_GENERATOR
704 707
705 const ParameterCount arguments_; 708 const ParameterCount arguments_;
706 const InLoopFlag in_loop_; 709 const InLoopFlag in_loop_;
707 const Code::Kind kind_; 710 const Code::Kind kind_;
711 const Code::ExtraICState extra_ic_state_;
708 const InlineCacheHolderFlag cache_holder_; 712 const InlineCacheHolderFlag cache_holder_;
709 713
710 const ParameterCount& arguments() { return arguments_; } 714 const ParameterCount& arguments() { return arguments_; }
711 715
712 MUST_USE_RESULT MaybeObject* GetCode(PropertyType type, String* name); 716 MUST_USE_RESULT MaybeObject* GetCode(PropertyType type, String* name);
713 717
714 // Convenience function. Calls GetCode above passing 718 // Convenience function. Calls GetCode above passing
715 // CONSTANT_FUNCTION type and the name of the given function. 719 // CONSTANT_FUNCTION type and the name of the given function.
716 MUST_USE_RESULT MaybeObject* GetCode(JSFunction* function); 720 MUST_USE_RESULT MaybeObject* GetCode(JSFunction* function);
717 721
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
789 793
790 JSFunction* constant_function_; 794 JSFunction* constant_function_;
791 bool is_simple_api_call_; 795 bool is_simple_api_call_;
792 FunctionTemplateInfo* expected_receiver_type_; 796 FunctionTemplateInfo* expected_receiver_type_;
793 CallHandlerInfo* api_call_info_; 797 CallHandlerInfo* api_call_info_;
794 }; 798 };
795 799
796 } } // namespace v8::internal 800 } } // namespace v8::internal
797 801
798 #endif // V8_STUB_CACHE_H_ 802 #endif // V8_STUB_CACHE_H_
OLDNEW
« no previous file with comments | « src/objects-inl.h ('k') | src/stub-cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698