| OLD | NEW |
| 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 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 237 class TypeFeedbackOracle: public ZoneObject { | 237 class TypeFeedbackOracle: public ZoneObject { |
| 238 public: | 238 public: |
| 239 TypeFeedbackOracle(Handle<Code> code, | 239 TypeFeedbackOracle(Handle<Code> code, |
| 240 Handle<Context> native_context, | 240 Handle<Context> native_context, |
| 241 Isolate* isolate, | 241 Isolate* isolate, |
| 242 Zone* zone); | 242 Zone* zone); |
| 243 | 243 |
| 244 bool LoadIsMonomorphicNormal(Property* expr); | 244 bool LoadIsMonomorphicNormal(Property* expr); |
| 245 bool LoadIsUninitialized(Property* expr); | 245 bool LoadIsUninitialized(Property* expr); |
| 246 bool LoadIsPolymorphic(Property* expr); | 246 bool LoadIsPolymorphic(Property* expr); |
| 247 bool StoreIsUninitialized(TypeFeedbackId ast_id); |
| 247 bool StoreIsMonomorphicNormal(TypeFeedbackId ast_id); | 248 bool StoreIsMonomorphicNormal(TypeFeedbackId ast_id); |
| 248 bool StoreIsPolymorphic(TypeFeedbackId ast_id); | 249 bool StoreIsPolymorphic(TypeFeedbackId ast_id); |
| 249 bool CallIsMonomorphic(Call* expr); | 250 bool CallIsMonomorphic(Call* expr); |
| 250 bool CallNewIsMonomorphic(CallNew* expr); | 251 bool CallNewIsMonomorphic(CallNew* expr); |
| 251 bool ObjectLiteralStoreIsMonomorphic(ObjectLiteralProperty* prop); | 252 bool ObjectLiteralStoreIsMonomorphic(ObjectLiteralProperty* prop); |
| 252 | 253 |
| 253 // TODO(1571) We can't use ForInStatement::ForInType as the return value due | 254 // TODO(1571) We can't use ForInStatement::ForInType as the return value due |
| 254 // to various cycles in our headers. | 255 // to various cycles in our headers. |
| 255 byte ForInType(ForInStatement* expr); | 256 byte ForInType(ForInStatement* expr); |
| 256 | 257 |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 292 // of various cycles in our headers. Death to tons of implementations in | 293 // of various cycles in our headers. Death to tons of implementations in |
| 293 // headers!! :-P | 294 // headers!! :-P |
| 294 byte ToBooleanTypes(TypeFeedbackId id); | 295 byte ToBooleanTypes(TypeFeedbackId id); |
| 295 | 296 |
| 296 // Get type information for arithmetic operations and compares. | 297 // Get type information for arithmetic operations and compares. |
| 297 Handle<Type> UnaryType(TypeFeedbackId id); | 298 Handle<Type> UnaryType(TypeFeedbackId id); |
| 298 void BinaryType(TypeFeedbackId id, | 299 void BinaryType(TypeFeedbackId id, |
| 299 Handle<Type>* left, | 300 Handle<Type>* left, |
| 300 Handle<Type>* right, | 301 Handle<Type>* right, |
| 301 Handle<Type>* result, | 302 Handle<Type>* result, |
| 302 bool* has_fixed_right_arg, | 303 Maybe<int>* fixed_right_arg); |
| 303 int* fixed_right_arg_value); | |
| 304 | 304 |
| 305 void CompareTypes(TypeFeedbackId id, | 305 void CompareType(TypeFeedbackId id, |
| 306 Handle<Type>* left_type, | 306 Handle<Type>* left, |
| 307 Handle<Type>* right_type, | 307 Handle<Type>* right, |
| 308 Handle<Type>* overall_type, | 308 Handle<Type>* combined); |
| 309 Handle<Type>* compare_nil_type); | |
| 310 | 309 |
| 311 Handle<Type> ClauseType(TypeFeedbackId id); | 310 Handle<Type> ClauseType(TypeFeedbackId id); |
| 312 | 311 |
| 313 TypeInfo IncrementType(CountOperation* expr); | 312 TypeInfo IncrementType(CountOperation* expr); |
| 314 | 313 |
| 315 Zone* zone() const { return zone_; } | 314 Zone* zone() const { return zone_; } |
| 316 Isolate* isolate() const { return isolate_; } | 315 Isolate* isolate() const { return isolate_; } |
| 317 | 316 |
| 318 private: | 317 private: |
| 319 void CollectReceiverTypes(TypeFeedbackId ast_id, | 318 void CollectReceiverTypes(TypeFeedbackId ast_id, |
| (...skipping 24 matching lines...) Expand all Loading... |
| 344 Isolate* isolate_; | 343 Isolate* isolate_; |
| 345 Zone* zone_; | 344 Zone* zone_; |
| 346 Handle<UnseededNumberDictionary> dictionary_; | 345 Handle<UnseededNumberDictionary> dictionary_; |
| 347 | 346 |
| 348 DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle); | 347 DISALLOW_COPY_AND_ASSIGN(TypeFeedbackOracle); |
| 349 }; | 348 }; |
| 350 | 349 |
| 351 } } // namespace v8::internal | 350 } } // namespace v8::internal |
| 352 | 351 |
| 353 #endif // V8_TYPE_INFO_H_ | 352 #endif // V8_TYPE_INFO_H_ |
| OLD | NEW |