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

Side by Side Diff: src/objects.h

Issue 11365174: A change in the way we place TransitionElementKinds in the tree. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 1 month 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 4713 matching lines...) Expand 10 before | Expand all | Expand 10 after
4724 4724
4725 // Code aging -- platform-specific 4725 // Code aging -- platform-specific
4726 byte* FindPlatformCodeAgeSequence(); 4726 byte* FindPlatformCodeAgeSequence();
4727 static void PatchPlatformCodeAge(byte* sequence, Age age, 4727 static void PatchPlatformCodeAge(byte* sequence, Age age,
4728 MarkingParity parity); 4728 MarkingParity parity);
4729 4729
4730 DISALLOW_IMPLICIT_CONSTRUCTORS(Code); 4730 DISALLOW_IMPLICIT_CONSTRUCTORS(Code);
4731 }; 4731 };
4732 4732
4733 4733
4734 MaybeObject* AddMissingElementsTransitions(Map* map, ElementsKind to_kind);
4735 Map* FindClosestElementsTransition(Map* map, ElementsKind to_kind);
4736
4737
4734 // All heap objects have a Map that describes their structure. 4738 // All heap objects have a Map that describes their structure.
4735 // A Map contains information about: 4739 // A Map contains information about:
4736 // - Size information about the object 4740 // - Size information about the object
4737 // - How to iterate over an object (for garbage collection) 4741 // - How to iterate over an object (for garbage collection)
4738 class Map: public HeapObject { 4742 class Map: public HeapObject {
4739 public: 4743 public:
4740 // Instance size. 4744 // Instance size.
4741 // Size in bytes or kVariableSizeSentinel if instances do not have 4745 // Size in bytes or kVariableSizeSentinel if instances do not have
4742 // a fixed size. 4746 // a fixed size.
4743 inline int instance_size(); 4747 inline int instance_size();
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after
5143 // Returns the map that this map transitions to if its elements_kind 5147 // Returns the map that this map transitions to if its elements_kind
5144 // is changed to |elements_kind|, or NULL if no such map is cached yet. 5148 // is changed to |elements_kind|, or NULL if no such map is cached yet.
5145 // |safe_to_add_transitions| is set to false if adding transitions is not 5149 // |safe_to_add_transitions| is set to false if adding transitions is not
5146 // allowed. 5150 // allowed.
5147 Map* LookupElementsTransitionMap(ElementsKind elements_kind); 5151 Map* LookupElementsTransitionMap(ElementsKind elements_kind);
5148 5152
5149 // Returns the transitioned map for this map with the most generic 5153 // Returns the transitioned map for this map with the most generic
5150 // elements_kind that's found in |candidates|, or null handle if no match is 5154 // elements_kind that's found in |candidates|, or null handle if no match is
5151 // found at all. 5155 // found at all.
5152 Handle<Map> FindTransitionedMap(MapHandleList* candidates); 5156 Handle<Map> FindTransitionedMap(MapHandleList* candidates);
5153 Map* FindTransitionedMap(MapList* candidates);
5154 5157
5155 // Zaps the contents of backing data structures. Note that the 5158 // Zaps the contents of backing data structures. Note that the
5156 // heap verifier (i.e. VerifyMarkingVisitor) relies on zapping of objects 5159 // heap verifier (i.e. VerifyMarkingVisitor) relies on zapping of objects
5157 // holding weak references when incremental marking is used, because it also 5160 // holding weak references when incremental marking is used, because it also
5158 // iterates over objects that are otherwise unreachable. 5161 // iterates over objects that are otherwise unreachable.
5159 // In general we only want to call these functions in release mode when 5162 // In general we only want to call these functions in release mode when
5160 // heap verification is turned on. 5163 // heap verification is turned on.
5161 void ZapPrototypeTransitions(); 5164 void ZapPrototypeTransitions();
5162 void ZapTransitions(); 5165 void ZapTransitions();
5163 5166
(...skipping 3873 matching lines...) Expand 10 before | Expand all | Expand 10 after
9037 } else { 9040 } else {
9038 value &= ~(1 << bit_position); 9041 value &= ~(1 << bit_position);
9039 } 9042 }
9040 return value; 9043 return value;
9041 } 9044 }
9042 }; 9045 };
9043 9046
9044 } } // namespace v8::internal 9047 } } // namespace v8::internal
9045 9048
9046 #endif // V8_OBJECTS_H_ 9049 #endif // V8_OBJECTS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698