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

Side by Side Diff: src/heap.h

Issue 174317: Reapply ARM root array change to reduce const pool size... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 4 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 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 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 715 matching lines...) Expand 10 before | Expand all | Expand 10 after
726 } 726 }
727 727
728 // Sets the non_monomorphic_cache_ (only used when expanding the dictionary). 728 // Sets the non_monomorphic_cache_ (only used when expanding the dictionary).
729 static void public_set_non_monomorphic_cache(NumberDictionary* value) { 729 static void public_set_non_monomorphic_cache(NumberDictionary* value) {
730 roots_[kNonMonomorphicCacheRootIndex] = value; 730 roots_[kNonMonomorphicCacheRootIndex] = value;
731 } 731 }
732 732
733 // Update the next script id. 733 // Update the next script id.
734 static inline void SetLastScriptId(Object* last_script_id); 734 static inline void SetLastScriptId(Object* last_script_id);
735 735
736 // Generated code can embed this address to get access to the roots.
737 static Object** roots_address() { return roots_; }
738
736 #ifdef DEBUG 739 #ifdef DEBUG
737 static void Print(); 740 static void Print();
738 static void PrintHandles(); 741 static void PrintHandles();
739 742
740 // Verify the heap is in its normal state before or after a GC. 743 // Verify the heap is in its normal state before or after a GC.
741 static void Verify(); 744 static void Verify();
742 745
743 // Report heap statistics. 746 // Report heap statistics.
744 static void ReportHeapStatistics(const char* title); 747 static void ReportHeapStatistics(const char* title);
745 static void ReportCodeStatistics(const char* title); 748 static void ReportCodeStatistics(const char* title);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
832 > old_gen_promotion_limit_; 835 > old_gen_promotion_limit_;
833 } 836 }
834 837
835 // True if we have reached the allocation limit in the old generation that 838 // True if we have reached the allocation limit in the old generation that
836 // should artificially cause a GC right now. 839 // should artificially cause a GC right now.
837 static bool OldGenerationAllocationLimitReached() { 840 static bool OldGenerationAllocationLimitReached() {
838 return (PromotedSpaceSize() + PromotedExternalMemorySize()) 841 return (PromotedSpaceSize() + PromotedExternalMemorySize())
839 > old_gen_allocation_limit_; 842 > old_gen_allocation_limit_;
840 } 843 }
841 844
845 // Declare all the root indices.
846 enum RootListIndex {
847 #define ROOT_INDEX_DECLARATION(type, name, camel_name) k##camel_name##RootIndex,
848 STRONG_ROOT_LIST(ROOT_INDEX_DECLARATION)
849 #undef ROOT_INDEX_DECLARATION
850
851 // Utility type maps
852 #define DECLARE_STRUCT_MAP(NAME, Name, name) k##Name##MapRootIndex,
853 STRUCT_LIST(DECLARE_STRUCT_MAP)
854 #undef DECLARE_STRUCT_MAP
855
856 #define SYMBOL_INDEX_DECLARATION(name, str) k##name##RootIndex,
857 SYMBOL_LIST(SYMBOL_INDEX_DECLARATION)
858 #undef SYMBOL_DECLARATION
859
860 kSymbolTableRootIndex,
861 kStrongRootListLength = kSymbolTableRootIndex,
862 kRootListLength
863 };
864
842 private: 865 private:
843 static int semispace_size_; 866 static int semispace_size_;
844 static int initial_semispace_size_; 867 static int initial_semispace_size_;
845 static int young_generation_size_; 868 static int young_generation_size_;
846 static int old_generation_size_; 869 static int old_generation_size_;
847 870
848 // For keeping track of how much data has survived 871 // For keeping track of how much data has survived
849 // scavenge since last new space expansion. 872 // scavenge since last new space expansion.
850 static int survived_since_last_expansion_; 873 static int survived_since_last_expansion_;
851 874
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 // by global handles 939 // by global handles
917 static int amount_of_external_allocated_memory_; 940 static int amount_of_external_allocated_memory_;
918 941
919 // Caches the amount of external memory registered at the last global gc. 942 // Caches the amount of external memory registered at the last global gc.
920 static int amount_of_external_allocated_memory_at_last_global_gc_; 943 static int amount_of_external_allocated_memory_at_last_global_gc_;
921 944
922 // Indicates that an allocation has failed in the old generation since the 945 // Indicates that an allocation has failed in the old generation since the
923 // last GC. 946 // last GC.
924 static int old_gen_exhausted_; 947 static int old_gen_exhausted_;
925 948
926 // Declare all the root indices.
927 enum RootListIndex {
928 #define ROOT_INDEX_DECLARATION(type, name, camel_name) k##camel_name##RootIndex,
929 STRONG_ROOT_LIST(ROOT_INDEX_DECLARATION)
930 #undef ROOT_INDEX_DECLARATION
931
932 // Utility type maps
933 #define DECLARE_STRUCT_MAP(NAME, Name, name) k##Name##MapRootIndex,
934 STRUCT_LIST(DECLARE_STRUCT_MAP)
935 #undef DECLARE_STRUCT_MAP
936
937 #define SYMBOL_INDEX_DECLARATION(name, str) k##name##RootIndex,
938 SYMBOL_LIST(SYMBOL_INDEX_DECLARATION)
939 #undef SYMBOL_DECLARATION
940
941 kSymbolTableRootIndex,
942 kStrongRootListLength = kSymbolTableRootIndex,
943 kRootListLength
944 };
945
946 static Object* roots_[kRootListLength]; 949 static Object* roots_[kRootListLength];
947 950
948 struct StringTypeTable { 951 struct StringTypeTable {
949 InstanceType type; 952 InstanceType type;
950 int size; 953 int size;
951 RootListIndex index; 954 RootListIndex index;
952 }; 955 };
953 956
954 struct ConstantSymbolTable { 957 struct ConstantSymbolTable {
955 const char* contents; 958 const char* contents;
(...skipping 537 matching lines...) Expand 10 before | Expand all | Expand 10 after
1493 int marked_count_; 1496 int marked_count_;
1494 1497
1495 // The count from the end of the previous full GC. Will be zero if there 1498 // The count from the end of the previous full GC. Will be zero if there
1496 // was no previous full GC. 1499 // was no previous full GC.
1497 int previous_marked_count_; 1500 int previous_marked_count_;
1498 }; 1501 };
1499 1502
1500 } } // namespace v8::internal 1503 } } // namespace v8::internal
1501 1504
1502 #endif // V8_HEAP_H_ 1505 #endif // V8_HEAP_H_
OLDNEW
« no previous file with comments | « src/assembler.cc ('k') | src/serialize.cc » ('j') | test/cctest/test-serialize.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698