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

Side by Side Diff: src/interpreter/interpreter-assembler.h

Issue 2153433002: [Interpreter] Collect type feedback for 'new' in the bytecode handler (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 5 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 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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_INTERPRETER_INTERPRETER_ASSEMBLER_H_ 5 #ifndef V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_
6 #define V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ 6 #define V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_
7 7
8 #include "src/allocation.h" 8 #include "src/allocation.h"
9 #include "src/base/smart-pointers.h" 9 #include "src/base/smart-pointers.h"
10 #include "src/builtins/builtins.h" 10 #include "src/builtins/builtins.h"
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 compiler::Node* type_feedback_vector, 101 compiler::Node* type_feedback_vector,
102 TailCallMode tail_call_mode); 102 TailCallMode tail_call_mode);
103 103
104 // Call JSFunction or Callable |function| with |arg_count| 104 // Call JSFunction or Callable |function| with |arg_count|
105 // arguments (not including receiver) and the first argument 105 // arguments (not including receiver) and the first argument
106 // located at |first_arg|. 106 // located at |first_arg|.
107 compiler::Node* CallJS(compiler::Node* function, compiler::Node* context, 107 compiler::Node* CallJS(compiler::Node* function, compiler::Node* context,
108 compiler::Node* first_arg, compiler::Node* arg_count, 108 compiler::Node* first_arg, compiler::Node* arg_count,
109 TailCallMode tail_call_mode); 109 TailCallMode tail_call_mode);
110 110
111 void UpdateTypeFeedback(compiler::Node* slot_id,
112 compiler::Node* type_feedback_vector,
113 compiler::Node* constructor, compiler::Node* context);
114
111 // Call constructor |constructor| with |arg_count| arguments (not 115 // Call constructor |constructor| with |arg_count| arguments (not
112 // including receiver) and the first argument located at 116 // including receiver) and the first argument located at
113 // |first_arg|. The |new_target| is the same as the 117 // |first_arg|. The |new_target| is the same as the
114 // |constructor| for the new keyword, but differs for the super 118 // |constructor| for the new keyword, but differs for the super
115 // keyword. 119 // keyword.
116 compiler::Node* CallConstruct(compiler::Node* constructor, 120 compiler::Node* CallConstruct(compiler::Node* constructor,
117 compiler::Node* context, 121 compiler::Node* context,
118 compiler::Node* new_target, 122 compiler::Node* new_target,
119 compiler::Node* first_arg, 123 compiler::Node* first_arg,
120 compiler::Node* arg_count); 124 compiler::Node* arg_count,
125 compiler::Node* slot_id,
126 compiler::Node* type_feedback_vector);
121 127
122 // Call runtime function with |arg_count| arguments and the first argument 128 // Call runtime function with |arg_count| arguments and the first argument
123 // located at |first_arg|. 129 // located at |first_arg|.
124 compiler::Node* CallRuntimeN(compiler::Node* function_id, 130 compiler::Node* CallRuntimeN(compiler::Node* function_id,
125 compiler::Node* context, 131 compiler::Node* context,
126 compiler::Node* first_arg, 132 compiler::Node* first_arg,
127 compiler::Node* arg_count, int return_size = 1); 133 compiler::Node* arg_count, int return_size = 1);
128 134
129 // Jump relative to the current bytecode by |jump_offset|. 135 // Jump relative to the current bytecode by |jump_offset|.
130 compiler::Node* Jump(compiler::Node* jump_offset); 136 compiler::Node* Jump(compiler::Node* jump_offset);
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 compiler::Node* stack_pointer_before_call_; 265 compiler::Node* stack_pointer_before_call_;
260 266
261 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler); 267 DISALLOW_COPY_AND_ASSIGN(InterpreterAssembler);
262 }; 268 };
263 269
264 } // namespace interpreter 270 } // namespace interpreter
265 } // namespace internal 271 } // namespace internal
266 } // namespace v8 272 } // namespace v8
267 273
268 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_ 274 #endif // V8_INTERPRETER_INTERPRETER_ASSEMBLER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698