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

Side by Side Diff: src/objects-inl.h

Issue 15094018: Create AllocationSite objects, pointed to by AllocationSiteInfo. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Comment response Created 7 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 | Annotate | Revision Log
« no previous file with comments | « src/objects-debug.cc ('k') | src/objects-printer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 1293 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 #endif 1304 #endif
1305 } 1305 }
1306 1306
1307 1307
1308 bool JSObject::ShouldTrackAllocationInfo() { 1308 bool JSObject::ShouldTrackAllocationInfo() {
1309 if (map()->CanTrackAllocationSite()) { 1309 if (map()->CanTrackAllocationSite()) {
1310 if (!IsJSArray()) { 1310 if (!IsJSArray()) {
1311 return true; 1311 return true;
1312 } 1312 }
1313 1313
1314 return AllocationSiteInfo::GetMode(GetElementsKind()) == 1314 return AllocationSite::GetMode(GetElementsKind()) ==
1315 TRACK_ALLOCATION_SITE; 1315 TRACK_ALLOCATION_SITE;
1316 } 1316 }
1317 return false; 1317 return false;
1318 } 1318 }
1319 1319
1320 1320
1321 // Heuristic: We only need to create allocation site info if the boilerplate 1321 // Heuristic: We only need to create allocation site info if the boilerplate
1322 // elements kind is the initial elements kind. 1322 // elements kind is the initial elements kind.
1323 AllocationSiteMode AllocationSiteInfo::GetMode( 1323 AllocationSiteMode AllocationSite::GetMode(
1324 ElementsKind boilerplate_elements_kind) { 1324 ElementsKind boilerplate_elements_kind) {
1325 if (FLAG_track_allocation_sites && 1325 if (FLAG_track_allocation_sites &&
1326 IsFastSmiElementsKind(boilerplate_elements_kind)) { 1326 IsFastSmiElementsKind(boilerplate_elements_kind)) {
1327 return TRACK_ALLOCATION_SITE; 1327 return TRACK_ALLOCATION_SITE;
1328 } 1328 }
1329 1329
1330 return DONT_TRACK_ALLOCATION_SITE; 1330 return DONT_TRACK_ALLOCATION_SITE;
1331 } 1331 }
1332 1332
1333 1333
1334 AllocationSiteMode AllocationSiteInfo::GetMode(ElementsKind from, 1334 AllocationSiteMode AllocationSite::GetMode(ElementsKind from,
1335 ElementsKind to) { 1335 ElementsKind to) {
1336 if (FLAG_track_allocation_sites && 1336 if (FLAG_track_allocation_sites &&
1337 IsFastSmiElementsKind(from) && 1337 IsFastSmiElementsKind(from) &&
1338 (IsFastObjectElementsKind(to) || IsFastDoubleElementsKind(to))) { 1338 (IsFastObjectElementsKind(to) || IsFastDoubleElementsKind(to))) {
1339 return TRACK_ALLOCATION_SITE; 1339 return TRACK_ALLOCATION_SITE;
1340 } 1340 }
1341 1341
1342 return DONT_TRACK_ALLOCATION_SITE; 1342 return DONT_TRACK_ALLOCATION_SITE;
1343 } 1343 }
1344 1344
1345 1345
(...skipping 3095 matching lines...) Expand 10 before | Expand all | Expand 10 after
4441 4441
4442 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset) 4442 ACCESSORS(ObjectTemplateInfo, constructor, Object, kConstructorOffset)
4443 ACCESSORS(ObjectTemplateInfo, internal_field_count, Object, 4443 ACCESSORS(ObjectTemplateInfo, internal_field_count, Object,
4444 kInternalFieldCountOffset) 4444 kInternalFieldCountOffset)
4445 4445
4446 ACCESSORS(SignatureInfo, receiver, Object, kReceiverOffset) 4446 ACCESSORS(SignatureInfo, receiver, Object, kReceiverOffset)
4447 ACCESSORS(SignatureInfo, args, Object, kArgsOffset) 4447 ACCESSORS(SignatureInfo, args, Object, kArgsOffset)
4448 4448
4449 ACCESSORS(TypeSwitchInfo, types, Object, kTypesOffset) 4449 ACCESSORS(TypeSwitchInfo, types, Object, kTypesOffset)
4450 4450
4451 ACCESSORS(AllocationSiteInfo, payload, Object, kPayloadOffset) 4451 ACCESSORS(AllocationSite, payload, Object, kPayloadOffset)
4452 ACCESSORS(AllocationSiteInfo, allocation_site, Object, kAllocationSiteOffset)
4452 4453
4453 ACCESSORS(Script, source, Object, kSourceOffset) 4454 ACCESSORS(Script, source, Object, kSourceOffset)
4454 ACCESSORS(Script, name, Object, kNameOffset) 4455 ACCESSORS(Script, name, Object, kNameOffset)
4455 ACCESSORS(Script, id, Smi, kIdOffset) 4456 ACCESSORS(Script, id, Smi, kIdOffset)
4456 ACCESSORS_TO_SMI(Script, line_offset, kLineOffsetOffset) 4457 ACCESSORS_TO_SMI(Script, line_offset, kLineOffsetOffset)
4457 ACCESSORS_TO_SMI(Script, column_offset, kColumnOffsetOffset) 4458 ACCESSORS_TO_SMI(Script, column_offset, kColumnOffsetOffset)
4458 ACCESSORS(Script, data, Object, kDataOffset) 4459 ACCESSORS(Script, data, Object, kDataOffset)
4459 ACCESSORS(Script, context_data, Object, kContextOffset) 4460 ACCESSORS(Script, context_data, Object, kContextOffset)
4460 ACCESSORS(Script, wrapper, Foreign, kWrapperOffset) 4461 ACCESSORS(Script, wrapper, Foreign, kWrapperOffset)
4461 ACCESSORS_TO_SMI(Script, type, kTypeOffset) 4462 ACCESSORS_TO_SMI(Script, type, kTypeOffset)
(...skipping 1719 matching lines...) Expand 10 before | Expand all | Expand 10 after
6181 #undef WRITE_UINT32_FIELD 6182 #undef WRITE_UINT32_FIELD
6182 #undef READ_SHORT_FIELD 6183 #undef READ_SHORT_FIELD
6183 #undef WRITE_SHORT_FIELD 6184 #undef WRITE_SHORT_FIELD
6184 #undef READ_BYTE_FIELD 6185 #undef READ_BYTE_FIELD
6185 #undef WRITE_BYTE_FIELD 6186 #undef WRITE_BYTE_FIELD
6186 6187
6187 6188
6188 } } // namespace v8::internal 6189 } } // namespace v8::internal
6189 6190
6190 #endif // V8_OBJECTS_INL_H_ 6191 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects-debug.cc ('k') | src/objects-printer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698