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

Side by Side Diff: src/heap.h

Issue 255003002: Make CreateInitialObjects more concise. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: addressed comment Created 6 years, 7 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/factory.cc ('k') | src/heap.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 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_HEAP_H_ 5 #ifndef V8_HEAP_H_
6 #define V8_HEAP_H_ 6 #define V8_HEAP_H_
7 7
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "allocation.h" 10 #include "allocation.h"
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
732 // Allocates a partial map for bootstrapping. 732 // Allocates a partial map for bootstrapping.
733 MUST_USE_RESULT MaybeObject* AllocatePartialMap(InstanceType instance_type, 733 MUST_USE_RESULT MaybeObject* AllocatePartialMap(InstanceType instance_type,
734 int instance_size); 734 int instance_size);
735 735
736 // Allocate a block of memory in the given space (filled with a filler). 736 // Allocate a block of memory in the given space (filled with a filler).
737 // Used as a fall-back for generated code when the space is full. 737 // Used as a fall-back for generated code when the space is full.
738 MUST_USE_RESULT MaybeObject* AllocateFillerObject(int size, 738 MUST_USE_RESULT MaybeObject* AllocateFillerObject(int size,
739 bool double_align, 739 bool double_align,
740 AllocationSpace space); 740 AllocationSpace space);
741 741
742 // Allocates an empty PolymorphicCodeCache.
743 MUST_USE_RESULT MaybeObject* AllocatePolymorphicCodeCache();
744
745 // Clear the Instanceof cache (used when a prototype changes). 742 // Clear the Instanceof cache (used when a prototype changes).
746 inline void ClearInstanceofCache(); 743 inline void ClearInstanceofCache();
747 744
748 // Iterates the whole code space to clear all ICs of the given kind. 745 // Iterates the whole code space to clear all ICs of the given kind.
749 void ClearAllICsByKind(Code::Kind kind); 746 void ClearAllICsByKind(Code::Kind kind);
750 747
751 // For use during bootup. 748 // For use during bootup.
752 void RepairFreeListsAfterBoot(); 749 void RepairFreeListsAfterBoot();
753 750
754 // Allocates and fully initializes a String. There are two String 751 // Allocates and fully initializes a String. There are two String
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
1274 HeapObject* object, ScratchpadSlotMode mode); 1271 HeapObject* object, ScratchpadSlotMode mode);
1275 1272
1276 // Support for partial snapshots. After calling this we have a linear 1273 // Support for partial snapshots. After calling this we have a linear
1277 // space to write objects in each space. 1274 // space to write objects in each space.
1278 void ReserveSpace(int *sizes, Address* addresses); 1275 void ReserveSpace(int *sizes, Address* addresses);
1279 1276
1280 // 1277 //
1281 // Support for the API. 1278 // Support for the API.
1282 // 1279 //
1283 1280
1284 bool CreateApiObjects(); 1281 void CreateApiObjects();
1285 1282
1286 // Adjusts the amount of registered external memory. 1283 // Adjusts the amount of registered external memory.
1287 // Returns the adjusted value. 1284 // Returns the adjusted value.
1288 inline int64_t AdjustAmountOfExternalAllocatedMemory( 1285 inline int64_t AdjustAmountOfExternalAllocatedMemory(
1289 int64_t change_in_bytes); 1286 int64_t change_in_bytes);
1290 1287
1291 // This is only needed for testing high promotion mode. 1288 // This is only needed for testing high promotion mode.
1292 void SetNewSpaceHighPromotionModeActive(bool mode) { 1289 void SetNewSpaceHighPromotionModeActive(bool mode) {
1293 new_space_high_promotion_mode_active_ = mode; 1290 new_space_high_promotion_mode_active_ = mode;
1294 } 1291 }
(...skipping 659 matching lines...) Expand 10 before | Expand all | Expand 10 after
1954 int length, PretenureFlag pretenure); 1951 int length, PretenureFlag pretenure);
1955 1952
1956 // Initializes a JSObject based on its map. 1953 // Initializes a JSObject based on its map.
1957 void InitializeJSObjectFromMap(JSObject* obj, 1954 void InitializeJSObjectFromMap(JSObject* obj,
1958 FixedArray* properties, 1955 FixedArray* properties,
1959 Map* map); 1956 Map* map);
1960 void InitializeAllocationMemento(AllocationMemento* memento, 1957 void InitializeAllocationMemento(AllocationMemento* memento,
1961 AllocationSite* allocation_site); 1958 AllocationSite* allocation_site);
1962 1959
1963 bool CreateInitialMaps(); 1960 bool CreateInitialMaps();
1964 bool CreateInitialObjects(); 1961 void CreateInitialObjects();
1965 1962
1966 // These five Create*EntryStub functions are here and forced to not be inlined 1963 // These five Create*EntryStub functions are here and forced to not be inlined
1967 // because of a gcc-4.4 bug that assigns wrong vtable entries. 1964 // because of a gcc-4.4 bug that assigns wrong vtable entries.
1968 NO_INLINE(void CreateJSEntryStub()); 1965 NO_INLINE(void CreateJSEntryStub());
1969 NO_INLINE(void CreateJSConstructEntryStub()); 1966 NO_INLINE(void CreateJSConstructEntryStub());
1970 1967
1971 void CreateFixedStubs(); 1968 void CreateFixedStubs();
1972 1969
1973 // Allocate empty fixed array. 1970 // Allocate empty fixed array.
1974 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedArray(); 1971 MUST_USE_RESULT MaybeObject* AllocateEmptyFixedArray();
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
2038 void ReportStatisticsAfterGC(); 2035 void ReportStatisticsAfterGC();
2039 2036
2040 // Slow part of scavenge object. 2037 // Slow part of scavenge object.
2041 static void ScavengeObjectSlow(HeapObject** p, HeapObject* object); 2038 static void ScavengeObjectSlow(HeapObject** p, HeapObject* object);
2042 2039
2043 // Total RegExp code ever generated 2040 // Total RegExp code ever generated
2044 double total_regexp_code_generated_; 2041 double total_regexp_code_generated_;
2045 2042
2046 GCTracer* tracer_; 2043 GCTracer* tracer_;
2047 2044
2048 // Allocates a small number to string cache.
2049 MUST_USE_RESULT MaybeObject* AllocateInitialNumberStringCache();
2050 // Creates and installs the full-sized number string cache. 2045 // Creates and installs the full-sized number string cache.
2051 int FullSizeNumberStringCacheLength(); 2046 int FullSizeNumberStringCacheLength();
2052 // Flush the number to string cache. 2047 // Flush the number to string cache.
2053 void FlushNumberStringCache(); 2048 void FlushNumberStringCache();
2054 2049
2055 // Allocates a fixed-size allocation sites scratchpad.
2056 MUST_USE_RESULT MaybeObject* AllocateAllocationSitesScratchpad();
2057
2058 // Sets used allocation sites entries to undefined. 2050 // Sets used allocation sites entries to undefined.
2059 void FlushAllocationSitesScratchpad(); 2051 void FlushAllocationSitesScratchpad();
2060 2052
2061 // Initializes the allocation sites scratchpad with undefined values. 2053 // Initializes the allocation sites scratchpad with undefined values.
2062 void InitializeAllocationSitesScratchpad(); 2054 void InitializeAllocationSitesScratchpad();
2063 2055
2064 // Adds an allocation site to the scratchpad if there is space left. 2056 // Adds an allocation site to the scratchpad if there is space left.
2065 void AddAllocationSiteToScratchpad(AllocationSite* site, 2057 void AddAllocationSiteToScratchpad(AllocationSite* site,
2066 ScratchpadSlotMode mode); 2058 ScratchpadSlotMode mode);
2067 2059
(...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after
2866 DisallowHeapAllocation no_allocation; // i.e. no gc allowed. 2858 DisallowHeapAllocation no_allocation; // i.e. no gc allowed.
2867 2859
2868 private: 2860 private:
2869 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer); 2861 DISALLOW_IMPLICIT_CONSTRUCTORS(PathTracer);
2870 }; 2862 };
2871 #endif // DEBUG 2863 #endif // DEBUG
2872 2864
2873 } } // namespace v8::internal 2865 } } // namespace v8::internal
2874 2866
2875 #endif // V8_HEAP_H_ 2867 #endif // V8_HEAP_H_
OLDNEW
« no previous file with comments | « src/factory.cc ('k') | src/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698