From 4078a89a27b624b4def577ea808b92a97174d0a5 Mon Sep 17 00:00:00 2001 From: "hpayer@chromium.org" Date: Thu, 26 Sep 2013 09:40:13 +0000 Subject: [PATCH] Add -optimize-for-size flag to optimize for memory size (will be used by pre-aging CL), and remove the is_memory_constrained ResourceConstraint. BUG=292928 R=hpayer@chromium.org Review URL: https://codereview.chromium.org/24018009 Patch from Ross McIlroy . git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16960 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- include/v8.h | 8 -------- src/api.cc | 8 +------- src/flag-definitions.h | 8 +++++--- src/isolate.cc | 6 ------ src/isolate.h | 8 -------- 5 files changed, 6 insertions(+), 32 deletions(-) diff --git a/include/v8.h b/include/v8.h index adc7a66..15aebb5 100644 --- a/include/v8.h +++ b/include/v8.h @@ -3762,20 +3762,12 @@ class V8_EXPORT ResourceConstraints { uint32_t* stack_limit() const { return stack_limit_; } // Sets an address beyond which the VM's stack may not grow. void set_stack_limit(uint32_t* value) { stack_limit_ = value; } - Maybe is_memory_constrained() const { return is_memory_constrained_; } - // If set to true, V8 will limit it's memory usage, at the potential cost of - // lower performance. Note, this option is a tentative addition to the API - // and may be removed or modified without warning. - void set_memory_constrained(bool value) { - is_memory_constrained_ = Maybe(value); - } private: int max_young_space_size_; int max_old_space_size_; int max_executable_size_; uint32_t* stack_limit_; - Maybe is_memory_constrained_; }; diff --git a/src/api.cc b/src/api.cc index 07a249c..ada94c7 100644 --- a/src/api.cc +++ b/src/api.cc @@ -563,8 +563,7 @@ ResourceConstraints::ResourceConstraints() : max_young_space_size_(0), max_old_space_size_(0), max_executable_size_(0), - stack_limit_(NULL), - is_memory_constrained_() { } + stack_limit_(NULL) { } bool SetResourceConstraints(ResourceConstraints* constraints) { @@ -585,11 +584,6 @@ bool SetResourceConstraints(ResourceConstraints* constraints) { uintptr_t limit = reinterpret_cast(constraints->stack_limit()); isolate->stack_guard()->SetStackLimit(limit); } - if (constraints->is_memory_constrained().has_value && - !i::FLAG_force_memory_constrained.has_value) { - isolate->set_is_memory_constrained( - constraints->is_memory_constrained().value); - } return true; } diff --git a/src/flag-definitions.h b/src/flag-definitions.h index e745471..978b34d 100644 --- a/src/flag-definitions.h +++ b/src/flag-definitions.h @@ -216,6 +216,11 @@ DEFINE_implication(track_heap_object_fields, track_fields) DEFINE_implication(track_computed_fields, track_fields) DEFINE_bool(smi_binop, true, "support smi representation in binary operations") +// Flags for optimization types. +DEFINE_bool(optimize_for_size, false, + "Enables optimizations which favor memory size over execution " + "speed.") + // Flags for data representation optimizations DEFINE_bool(unbox_double_arrays, true, "automatically unbox arrays of doubles") DEFINE_bool(string_slices, true, "use string slices") @@ -589,9 +594,6 @@ DEFINE_int(hash_seed, 0, "Fixed seed to use to hash property keys (0 means random)" "(with snapshots this option cannot override the baked-in seed)") -DEFINE_maybe_bool(force_memory_constrained, - "force (if true) or prevent (if false) the runtime from treating " - "the device as being memory constrained.") // v8.cc DEFINE_bool(preemption, false, diff --git a/src/isolate.cc b/src/isolate.cc index 5a80d3d..3e5d2b9 100644 --- a/src/isolate.cc +++ b/src/isolate.cc @@ -1792,10 +1792,6 @@ Isolate::Isolate() // TODO(bmeurer) Initialized lazily because it depends on flags; can // be fixed once the default isolate cleanup is done. random_number_generator_(NULL), - // TODO(rmcilroy) Currently setting this based on - // FLAG_force_memory_constrained in Isolate::Init; move to here when - // isolate cleanup is done - is_memory_constrained_(false), has_fatal_error_(false), use_crankshaft_(true), initialized_from_snapshot_(false), @@ -2157,8 +2153,6 @@ bool Isolate::Init(Deserializer* des) { TRACE_ISOLATE(init); stress_deopt_count_ = FLAG_deopt_every_n_times; - if (FLAG_force_memory_constrained.has_value) - is_memory_constrained_ = FLAG_force_memory_constrained.value; has_fatal_error_ = false; diff --git a/src/isolate.h b/src/isolate.h index cfea075..420cf03 100644 --- a/src/isolate.h +++ b/src/isolate.h @@ -1132,13 +1132,6 @@ class Isolate { // Given an address occupied by a live code object, return that object. Object* FindCodeObject(Address a); - bool is_memory_constrained() const { - return is_memory_constrained_; - } - void set_is_memory_constrained(bool value) { - is_memory_constrained_ = value; - } - private: Isolate(); @@ -1311,7 +1304,6 @@ class Isolate { unibrow::Mapping interp_canonicalize_mapping_; CodeStubInterfaceDescriptor* code_stub_interface_descriptors_; RandomNumberGenerator* random_number_generator_; - bool is_memory_constrained_; // True if fatal error has been signaled for this isolate. bool has_fatal_error_; -- 2.7.4