Reviewers: Hannes Payer,
Message:
PTAL
Description:
--predictable mode added
Please review this at https://codereview.chromium.org/93633008/
SVN Base: https://v8.googlecode.com/svn/branches/bleeding_edge
Affected files (+25, -0 lines):
M src/flag-definitions.h
M src/v8.cc
Index: src/flag-definitions.h
diff --git a/src/flag-definitions.h b/src/flag-definitions.h
index
658991ff5425159f857bf9d31c123a40f90ae2e9..1230801bb106d930da0e0e6cb5d897615b62d849
100644
--- a/src/flag-definitions.h
+++ b/src/flag-definitions.h
@@ -69,6 +69,9 @@
#define DEFINE_implication(whenflag, thenflag) \
if (FLAG_##whenflag) FLAG_##thenflag = true;
+#define DEFINE_neg_implication(whenflag, thenflag) \
+ if (FLAG_##whenflag) FLAG_##thenflag = false;
+
#else
#error No mode supplied when including flags.defs
#endif
@@ -90,6 +93,10 @@
#define DEFINE_implication(whenflag, thenflag)
#endif
+#ifndef DEFINE_neg_implication
+#define DEFINE_neg_implication(whenflag, thenflag)
+#endif
+
#define COMMA ,
#ifdef FLAG_MODE_DECLARE
@@ -628,6 +635,14 @@ DEFINE_string(extra_code, NULL, "A filename with extra
code to be included in"
DEFINE_bool(profile_hydrogen_code_stub_compilation, false,
"Print the time it takes to lazily compile hydrogen code
stubs.")
+DEFINE_bool(predictable, false, "enable predictable mode")
+DEFINE_neg_implication(predictable, randomize_hashes)
+DEFINE_neg_implication(predictable, concurrent_recompilation)
+DEFINE_neg_implication(predictable, concurrent_osr)
+DEFINE_neg_implication(predictable, concurrent_sweeping)
+DEFINE_neg_implication(predictable, parallel_sweeping)
+
+
//
// Dev shell flags
//
@@ -875,6 +890,7 @@ DEFINE_bool(enable_ool_constant_pool, false,
#undef DEFINE_float
#undef DEFINE_args
#undef DEFINE_implication
+#undef DEFINE_neg_implication
#undef DEFINE_ALIAS_bool
#undef DEFINE_ALIAS_int
#undef DEFINE_ALIAS_string
Index: src/v8.cc
diff --git a/src/v8.cc b/src/v8.cc
index
004a33946148cc2a4f9c71591c5463606726d348..265f0a6db008580cf4d02fd098b4fa749f8eb898
100644
--- a/src/v8.cc
+++ b/src/v8.cc
@@ -162,6 +162,15 @@ void V8::FireCallCompletedCallback(Isolate* isolate) {
void V8::InitializeOncePerProcessImpl() {
FlagList::EnforceFlagImplications();
+
+ if (FLAG_predictable) {
+ if (FLAG_random_seed == 0) {
+ // Avoid random seeds in predictable mode.
+ FLAG_random_seed = 12347;
+ }
+ FLAG_hash_seed = 0;
+ }
+
if (FLAG_stress_compaction) {
FLAG_force_marking_deque_overflows = true;
FLAG_gc_global = true;
--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
---
You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.