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

Side by Side Diff: src/heap.h

Issue 50011: Revert change 1509 that flush ICs when adding setters on an object or... (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 11 years, 9 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/accessors.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 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 588 matching lines...) Expand 10 before | Expand all | Expand 10 after
599 // Code that should be executed after the garbage collection proper. 599 // Code that should be executed after the garbage collection proper.
600 static void PostGarbageCollectionProcessing(); 600 static void PostGarbageCollectionProcessing();
601 601
602 // Performs garbage collection operation. 602 // Performs garbage collection operation.
603 // Returns whether required_space bytes are available after the collection. 603 // Returns whether required_space bytes are available after the collection.
604 static bool CollectGarbage(int required_space, AllocationSpace space); 604 static bool CollectGarbage(int required_space, AllocationSpace space);
605 605
606 // Performs a full garbage collection. 606 // Performs a full garbage collection.
607 static void CollectAllGarbage(); 607 static void CollectAllGarbage();
608 608
609 // Clears all inline caches by forcing a global garbage collection.
610 static void ClearStoreICs();
611
612 // Performs a full garbage collection if a context has been disposed 609 // Performs a full garbage collection if a context has been disposed
613 // since the last time the check was performed. 610 // since the last time the check was performed.
614 static void CollectAllGarbageIfContextDisposed(); 611 static void CollectAllGarbageIfContextDisposed();
615 612
616 // Notify the heap that a context has been disposed. 613 // Notify the heap that a context has been disposed.
617 static void NotifyContextDisposed(); 614 static void NotifyContextDisposed();
618 615
619 // Utility to invoke the scavenger. This is needed in test code to 616 // Utility to invoke the scavenger. This is needed in test code to
620 // ensure correct callback for weak global handles. 617 // ensure correct callback for weak global handles.
621 static void PerformScavenge(); 618 static void PerformScavenge();
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
804 > old_gen_promotion_limit_; 801 > old_gen_promotion_limit_;
805 } 802 }
806 803
807 // True if we have reached the allocation limit in the old generation that 804 // True if we have reached the allocation limit in the old generation that
808 // should artificially cause a GC right now. 805 // should artificially cause a GC right now.
809 static bool OldGenerationAllocationLimitReached() { 806 static bool OldGenerationAllocationLimitReached() {
810 return (PromotedSpaceSize() + PromotedExternalMemorySize()) 807 return (PromotedSpaceSize() + PromotedExternalMemorySize())
811 > old_gen_allocation_limit_; 808 > old_gen_allocation_limit_;
812 } 809 }
813 810
814 static bool has_store_ics() {
815 return has_store_ics_;
816 }
817
818 static void store_ic_created() {
819 has_store_ics_ = true;
820 }
821
822 private: 811 private:
823 static int semispace_size_; 812 static int semispace_size_;
824 static int initial_semispace_size_; 813 static int initial_semispace_size_;
825 static int young_generation_size_; 814 static int young_generation_size_;
826 static int old_generation_size_; 815 static int old_generation_size_;
827 816
828 static int new_space_growth_limit_; 817 static int new_space_growth_limit_;
829 static int scavenge_count_; 818 static int scavenge_count_;
830 819
831 static int always_allocate_scope_depth_; 820 static int always_allocate_scope_depth_;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
877 // by global handles 866 // by global handles
878 static int amount_of_external_allocated_memory_; 867 static int amount_of_external_allocated_memory_;
879 868
880 // Caches the amount of external memory registered at the last global gc. 869 // Caches the amount of external memory registered at the last global gc.
881 static int amount_of_external_allocated_memory_at_last_global_gc_; 870 static int amount_of_external_allocated_memory_at_last_global_gc_;
882 871
883 // Indicates that an allocation has failed in the old generation since the 872 // Indicates that an allocation has failed in the old generation since the
884 // last GC. 873 // last GC.
885 static int old_gen_exhausted_; 874 static int old_gen_exhausted_;
886 875
887 static bool has_store_ics_;
888
889 // Declare all the roots 876 // Declare all the roots
890 #define ROOT_DECLARATION(type, name) static type* name##_; 877 #define ROOT_DECLARATION(type, name) static type* name##_;
891 ROOT_LIST(ROOT_DECLARATION) 878 ROOT_LIST(ROOT_DECLARATION)
892 #undef ROOT_DECLARATION 879 #undef ROOT_DECLARATION
893 880
894 // Utility type maps 881 // Utility type maps
895 #define DECLARE_STRUCT_MAP(NAME, Name, name) static Map* name##_map_; 882 #define DECLARE_STRUCT_MAP(NAME, Name, name) static Map* name##_map_;
896 STRUCT_LIST(DECLARE_STRUCT_MAP) 883 STRUCT_LIST(DECLARE_STRUCT_MAP)
897 #undef DECLARE_STRUCT_MAP 884 #undef DECLARE_STRUCT_MAP
898 885
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 int marked_count_; 1291 int marked_count_;
1305 1292
1306 // The count from the end of the previous full GC. Will be zero if there 1293 // The count from the end of the previous full GC. Will be zero if there
1307 // was no previous full GC. 1294 // was no previous full GC.
1308 int previous_marked_count_; 1295 int previous_marked_count_;
1309 }; 1296 };
1310 1297
1311 } } // namespace v8::internal 1298 } } // namespace v8::internal
1312 1299
1313 #endif // V8_HEAP_H_ 1300 #endif // V8_HEAP_H_
OLDNEW
« no previous file with comments | « src/accessors.cc ('k') | src/heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698