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

Side by Side Diff: src/type-info.h

Issue 16957004: Migrate BinaryOpICs and UnaryOpICs to new type rep (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: addressed comments Created 7 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 | Annotate | Revision Log
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 213
214 enum StringStubFeedback { 214 enum StringStubFeedback {
215 DEFAULT_STRING_STUB = 0, 215 DEFAULT_STRING_STUB = 0,
216 STRING_INDEX_OUT_OF_BOUNDS = 1 216 STRING_INDEX_OUT_OF_BOUNDS = 1
217 }; 217 };
218 218
219 219
220 // Forward declarations. 220 // Forward declarations.
221 // TODO(rossberg): these should all go away eventually. 221 // TODO(rossberg): these should all go away eventually.
222 class Assignment; 222 class Assignment;
223 class BinaryOperation;
224 class Call; 223 class Call;
225 class CallNew; 224 class CallNew;
226 class CaseClause; 225 class CaseClause;
227 class CompilationInfo; 226 class CompilationInfo;
228 class CountOperation; 227 class CountOperation;
229 class Expression; 228 class Expression;
230 class ForInStatement; 229 class ForInStatement;
231 class ICStub; 230 class ICStub;
232 class Property; 231 class Property;
233 class SmallMapList; 232 class SmallMapList;
234 class UnaryOperation;
235 class ObjectLiteral; 233 class ObjectLiteral;
236 class ObjectLiteralProperty; 234 class ObjectLiteralProperty;
237 235
238 236
239 class TypeFeedbackOracle: public ZoneObject { 237 class TypeFeedbackOracle: public ZoneObject {
240 public: 238 public:
241 TypeFeedbackOracle(Handle<Code> code, 239 TypeFeedbackOracle(Handle<Code> code,
242 Handle<Context> native_context, 240 Handle<Context> native_context,
243 Isolate* isolate, 241 Isolate* isolate,
244 Zone* zone); 242 Zone* zone);
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 287
290 bool LoadIsBuiltin(Property* expr, Builtins::Name id); 288 bool LoadIsBuiltin(Property* expr, Builtins::Name id);
291 bool LoadIsStub(Property* expr, ICStub* stub); 289 bool LoadIsStub(Property* expr, ICStub* stub);
292 290
293 // TODO(1571) We can't use ToBooleanStub::Types as the return value because 291 // TODO(1571) We can't use ToBooleanStub::Types as the return value because
294 // of various cycles in our headers. Death to tons of implementations in 292 // of various cycles in our headers. Death to tons of implementations in
295 // headers!! :-P 293 // headers!! :-P
296 byte ToBooleanTypes(TypeFeedbackId id); 294 byte ToBooleanTypes(TypeFeedbackId id);
297 295
298 // Get type information for arithmetic operations and compares. 296 // Get type information for arithmetic operations and compares.
299 TypeInfo UnaryType(UnaryOperation* expr); 297 Handle<Type> UnaryType(TypeFeedbackId id);
300 void BinaryType(BinaryOperation* expr, 298 void BinaryType(TypeFeedbackId id,
301 TypeInfo* left, 299 Handle<Type>* left,
302 TypeInfo* right, 300 Handle<Type>* right,
303 TypeInfo* result, 301 Handle<Type>* result,
304 bool* has_fixed_right_arg, 302 bool* has_fixed_right_arg,
305 int* fixed_right_arg_value); 303 int* fixed_right_arg_value);
306 304
307 void CompareTypes(TypeFeedbackId id, 305 void CompareTypes(TypeFeedbackId id,
308 Handle<Type>* left_type, 306 Handle<Type>* left_type,
309 Handle<Type>* right_type, 307 Handle<Type>* right_type,
310 Handle<Type>* overall_type, 308 Handle<Type>* overall_type,
311 Handle<Type>* compare_nil_type); 309 Handle<Type>* compare_nil_type);
312 310
313 Handle<Type> ClauseType(TypeFeedbackId id); 311 Handle<Type> ClauseType(TypeFeedbackId id);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 Isolate* isolate_; 344 Isolate* isolate_;
347 Zone* zone_; 345 Zone* zone_;
348 Handle<UnseededNumberDictionary> dictionary_; 346 Handle<UnseededNumberDictionary> dictionary_;
349 347
350 DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle); 348 DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle);
351 }; 349 };
352 350
353 } } // namespace v8::internal 351 } } // namespace v8::internal
354 352
355 #endif // V8_TYPE_INFO_H_ 353 #endif // V8_TYPE_INFO_H_
OLDNEW
« src/hydrogen.cc ('K') | « src/ic.cc ('k') | src/type-info.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698