Index: src/flag-definitions.h |
diff --git a/src/flag-definitions.h b/src/flag-definitions.h |
index e734c7d3c6429bce47455261a1bb36cec37dcafd..08cd8304e4d7c86e53ca75ecd34678b5456bc6b4 100644 |
--- a/src/flag-definitions.h |
+++ b/src/flag-definitions.h |
@@ -90,34 +90,44 @@ |
#define DEFINE_implication(whenflag, thenflag) |
#endif |
-#define COMMA , |
#ifdef FLAG_MODE_DECLARE |
// Structure used to hold a collection of arguments to the JavaScript code. |
+#define JSARGUMENTS_INIT {{}} |
struct JSArguments { |
public: |
+ inline int argc() const { |
+ return static_cast<int>(storage_[0]); |
+ } |
+ inline const char** argv() const { |
+ return reinterpret_cast<const char**>(storage_[1]); |
+ } |
inline const char*& operator[] (int idx) const { |
- return argv[idx]; |
+ return argv()[idx]; |
+ } |
+ inline JSArguments& operator=(JSArguments args) { |
+ set_argc(args.argc()); |
+ set_argv(args.argv()); |
+ return *this; |
} |
static JSArguments Create(int argc, const char** argv) { |
JSArguments args; |
- args.argc = argc; |
- args.argv = argv; |
+ args.set_argc(argc); |
+ args.set_argv(argv); |
return args; |
} |
- int argc; |
- const char** argv; |
-}; |
- |
-struct MaybeBoolFlag { |
- static MaybeBoolFlag Create(bool has_value, bool value) { |
- MaybeBoolFlag flag; |
- flag.has_value = has_value; |
- flag.value = value; |
- return flag; |
+private: |
+ void set_argc(int argc) { |
+ storage_[0] = argc; |
+ } |
+ void set_argv(const char** argv) { |
+ storage_[1] = reinterpret_cast<AtomicWord>(argv); |
} |
- bool has_value; |
- bool value; |
+public: |
+ // Contains argc and argv. Unfortunately we have to store these two fields |
+ // into a single one to avoid making the initialization macro (which would be |
+ // "{ 0, NULL }") contain a coma. |
+ AtomicWord storage_[2]; |
}; |
#endif |
@@ -138,13 +148,10 @@ struct MaybeBoolFlag { |
#endif |
#define DEFINE_bool(nam, def, cmt) FLAG(BOOL, bool, nam, def, cmt) |
-#define DEFINE_maybe_bool(nam, cmt) FLAG(MAYBE_BOOL, MaybeBoolFlag, nam, \ |
- { false COMMA false }, cmt) |
#define DEFINE_int(nam, def, cmt) FLAG(INT, int, nam, def, cmt) |
#define DEFINE_float(nam, def, cmt) FLAG(FLOAT, double, nam, def, cmt) |
#define DEFINE_string(nam, def, cmt) FLAG(STRING, const char*, nam, def, cmt) |
-#define DEFINE_args(nam, cmt) FLAG(ARGS, JSArguments, nam, \ |
- { 0 COMMA NULL }, cmt) |
+#define DEFINE_args(nam, def, cmt) FLAG(ARGS, JSArguments, nam, def, cmt) |
#define DEFINE_ALIAS_bool(alias, nam) FLAG_ALIAS(BOOL, bool, alias, nam) |
#define DEFINE_ALIAS_int(alias, nam) FLAG_ALIAS(INT, int, alias, nam) |
@@ -233,7 +240,7 @@ DEFINE_bool(use_range, true, "use hydrogen range analysis") |
DEFINE_bool(use_gvn, true, "use hydrogen global value numbering") |
DEFINE_bool(use_canonicalizing, true, "use hydrogen instruction canonicalizing") |
DEFINE_bool(use_inlining, true, "use function inlining") |
-DEFINE_bool(use_escape_analysis, true, "use hydrogen escape analysis") |
+DEFINE_bool(use_escape_analysis, false, "use hydrogen escape analysis") |
DEFINE_bool(use_allocation_folding, true, "use allocation folding") |
DEFINE_int(max_inlining_levels, 5, "maximum number of inlining levels") |
DEFINE_int(max_inlined_source_size, 600, |
@@ -254,7 +261,6 @@ DEFINE_bool(trace_hydrogen_stubs, false, "trace generated hydrogen for stubs") |
DEFINE_string(trace_hydrogen_file, NULL, "trace hydrogen to given file name") |
DEFINE_string(trace_phase, "HLZ", "trace generated IR for specified phases") |
DEFINE_bool(trace_inlining, false, "trace inlining decisions") |
-DEFINE_bool(trace_load_elimination, false, "trace load elimination") |
DEFINE_bool(trace_alloc, false, "trace register allocator") |
DEFINE_bool(trace_all_uses, false, "trace all use positions") |
DEFINE_bool(trace_range, false, "trace range analysis") |
@@ -289,7 +295,6 @@ DEFINE_bool(array_index_dehoisting, true, |
"perform array index dehoisting") |
DEFINE_bool(analyze_environment_liveness, true, |
"analyze liveness of environment slots and zap dead values") |
-DEFINE_bool(load_elimination, false, "use load elimination") |
DEFINE_bool(dead_code_elimination, true, "use dead code elimination") |
DEFINE_bool(fold_constants, true, "use constant folding") |
DEFINE_bool(trace_dead_code_elimination, false, "trace dead code elimination") |
@@ -539,6 +544,7 @@ DEFINE_bool(use_idle_notification, true, |
"Use idle notification to reduce memory footprint.") |
// ic.cc |
DEFINE_bool(use_ic, true, "use inline caching") |
+DEFINE_bool(js_accessor_ics, false, "create ics for js accessors") |
// macro-assembler-ia32.cc |
DEFINE_bool(native_code_counters, false, |
@@ -594,9 +600,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, |
@@ -607,7 +610,6 @@ DEFINE_bool(regexp_optimization, true, "generate optimized regexp code") |
// Testing flags test/cctest/test-{flags,api,serialization}.cc |
DEFINE_bool(testing_bool_flag, true, "testing_bool_flag") |
-DEFINE_maybe_bool(testing_maybe_bool_flag, "testing_maybe_bool_flag") |
DEFINE_int(testing_int_flag, 13, "testing_int_flag") |
DEFINE_float(testing_float_flag, 2.5, "float-flag") |
DEFINE_string(testing_string_flag, "Hello, world!", "string-flag") |
@@ -640,7 +642,7 @@ DEFINE_int(debugger_port, 5858, "Port to use for remote debugging") |
#endif // ENABLE_DEBUGGER_SUPPORT |
DEFINE_string(map_counters, "", "Map counters to a file") |
-DEFINE_args(js_arguments, |
+DEFINE_args(js_arguments, JSARGUMENTS_INIT, |
"Pass all remaining arguments to the script. Alias for \"--\".") |
#if defined(WEBOS__) |
@@ -832,7 +834,6 @@ DEFINE_implication(print_all_code, trace_codegen) |
#undef FLAG_ALIAS |
#undef DEFINE_bool |
-#undef DEFINE_maybe_bool |
#undef DEFINE_int |
#undef DEFINE_string |
#undef DEFINE_float |
@@ -849,5 +850,3 @@ DEFINE_implication(print_all_code, trace_codegen) |
#undef FLAG_MODE_DEFINE_DEFAULTS |
#undef FLAG_MODE_META |
#undef FLAG_MODE_DEFINE_IMPLICATIONS |
- |
-#undef COMMA |