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

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

Issue 6879081: Added type recording for unary minus and unary bitwise negation. Note that the (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Incorporated Florian's suggested changes Created 9 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 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 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
220 220
221 221
222 enum StringStubFeedback { 222 enum StringStubFeedback {
223 DEFAULT_STRING_STUB = 0, 223 DEFAULT_STRING_STUB = 0,
224 STRING_INDEX_OUT_OF_BOUNDS = 1 224 STRING_INDEX_OUT_OF_BOUNDS = 1
225 }; 225 };
226 226
227 227
228 // Forward declarations. 228 // Forward declarations.
229 class Assignment; 229 class Assignment;
230 class UnaryOperation;
230 class BinaryOperation; 231 class BinaryOperation;
231 class Call; 232 class Call;
232 class CompareOperation; 233 class CompareOperation;
233 class CompilationInfo; 234 class CompilationInfo;
234 class Property; 235 class Property;
235 class CaseClause; 236 class CaseClause;
236 237
237 class TypeFeedbackOracle BASE_EMBEDDED { 238 class TypeFeedbackOracle BASE_EMBEDDED {
238 public: 239 public:
239 TypeFeedbackOracle(Handle<Code> code, Handle<Context> global_context); 240 TypeFeedbackOracle(Handle<Code> code, Handle<Context> global_context);
(...skipping 11 matching lines...) Expand all
251 252
252 ExternalArrayType GetKeyedLoadExternalArrayType(Property* expr); 253 ExternalArrayType GetKeyedLoadExternalArrayType(Property* expr);
253 ExternalArrayType GetKeyedStoreExternalArrayType(Expression* expr); 254 ExternalArrayType GetKeyedStoreExternalArrayType(Expression* expr);
254 255
255 CheckType GetCallCheckType(Call* expr); 256 CheckType GetCallCheckType(Call* expr);
256 Handle<JSObject> GetPrototypeForPrimitiveCheck(CheckType check); 257 Handle<JSObject> GetPrototypeForPrimitiveCheck(CheckType check);
257 258
258 bool LoadIsBuiltin(Property* expr, Builtins::Name id); 259 bool LoadIsBuiltin(Property* expr, Builtins::Name id);
259 260
260 // Get type information for arithmetic operations and compares. 261 // Get type information for arithmetic operations and compares.
262 TypeInfo UnaryType(UnaryOperation* expr);
261 TypeInfo BinaryType(BinaryOperation* expr); 263 TypeInfo BinaryType(BinaryOperation* expr);
262 TypeInfo CompareType(CompareOperation* expr); 264 TypeInfo CompareType(CompareOperation* expr);
263 TypeInfo SwitchType(CaseClause* clause); 265 TypeInfo SwitchType(CaseClause* clause);
264 266
265 private: 267 private:
266 ZoneMapList* CollectReceiverTypes(int position, 268 ZoneMapList* CollectReceiverTypes(int position,
267 Handle<String> name, 269 Handle<String> name,
268 Code::Flags flags); 270 Code::Flags flags);
269 271
270 void SetInfo(int position, Object* target); 272 void SetInfo(int position, Object* target);
(...skipping 10 matching lines...) Expand all
281 283
282 Handle<Context> global_context_; 284 Handle<Context> global_context_;
283 Handle<NumberDictionary> dictionary_; 285 Handle<NumberDictionary> dictionary_;
284 286
285 DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle); 287 DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle);
286 }; 288 };
287 289
288 } } // namespace v8::internal 290 } } // namespace v8::internal
289 291
290 #endif // V8_TYPE_INFO_H_ 292 #endif // V8_TYPE_INFO_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698