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

Side by Side Diff: runtime/vm/code_generator_ia32.h

Issue 10051011: Eliminate type checks that can successfully be performed at compile time. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 8 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | runtime/vm/code_generator_ia32.cc » ('j') | runtime/vm/code_generator_ia32.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #ifndef VM_CODE_GENERATOR_IA32_H_ 5 #ifndef VM_CODE_GENERATOR_IA32_H_
6 #define VM_CODE_GENERATOR_IA32_H_ 6 #define VM_CODE_GENERATOR_IA32_H_
7 7
8 #ifndef VM_CODE_GENERATOR_H_ 8 #ifndef VM_CODE_GENERATOR_H_
9 #error Do not include code_generator_ia32.h directly; use code_generator.h. 9 #error Do not include code_generator_ia32.h directly; use code_generator.h.
10 #endif 10 #endif
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 // the number of call arguments that are being checked in the inline cache. 162 // the number of call arguments that are being checked in the inline cache.
163 void GenerateInstanceCall(intptr_t node_id, 163 void GenerateInstanceCall(intptr_t node_id,
164 intptr_t token_index, 164 intptr_t token_index,
165 const String& function_name, 165 const String& function_name,
166 int num_arguments, 166 int num_arguments,
167 const Array& optional_arguments_names, 167 const Array& optional_arguments_names,
168 intptr_t num_args_checked); 168 intptr_t num_args_checked);
169 169
170 void GenerateInstanceOf(intptr_t node_id, 170 void GenerateInstanceOf(intptr_t node_id,
171 intptr_t token_index, 171 intptr_t token_index,
172 AstNode* value,
172 const AbstractType& type, 173 const AbstractType& type,
173 bool negate_result); 174 bool negate_result);
174 void GenerateAssertAssignable(intptr_t node_id, 175 void GenerateAssertAssignable(intptr_t node_id,
175 intptr_t token_index, 176 intptr_t token_index,
177 AstNode* value,
176 const AbstractType& dst_type, 178 const AbstractType& dst_type,
177 const String& dst_name); 179 const String& dst_name);
178 void GenerateArgumentTypeChecks(); 180 void GenerateArgumentTypeChecks();
179 void GenerateConditionTypeCheck(intptr_t node_id, intptr_t token_index); 181 void GenerateConditionTypeCheck(intptr_t node_id, intptr_t token_index);
180 182
181 void GenerateInstantiatorTypeArguments(intptr_t token_index); 183 void GenerateInstantiatorTypeArguments(intptr_t token_index);
182 void GenerateTypeArguments(ConstructorCallNode* node, 184 void GenerateTypeArguments(ConstructorCallNode* node,
183 bool is_cls_parameterized); 185 bool is_cls_parameterized);
184 186
185 void TestClassAndJump(const Class& cls, Label *label); 187 void TestClassAndJump(const Class& cls, Label *label);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
223 // The runtime context level is only incremented when a new context is 225 // The runtime context level is only incremented when a new context is
224 // allocated and chained to the list of contexts. 226 // allocated and chained to the list of contexts.
225 intptr_t context_level_; 227 intptr_t context_level_;
226 228
227 DISALLOW_IMPLICIT_CONSTRUCTORS(CodeGenerator); 229 DISALLOW_IMPLICIT_CONSTRUCTORS(CodeGenerator);
228 }; 230 };
229 231
230 } // namespace dart 232 } // namespace dart
231 233
232 #endif // VM_CODE_GENERATOR_IA32_H_ 234 #endif // VM_CODE_GENERATOR_IA32_H_
OLDNEW
« no previous file with comments | « no previous file | runtime/vm/code_generator_ia32.cc » ('j') | runtime/vm/code_generator_ia32.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698