Revision: 6553
Author: [email protected]
Date: Tue Feb 1 04:39:02 2011
Log: Temporary disable comparison of optimizability of code objects in some
cases.
With crankshaft, a code object can change its optimizability: it can start
as
optimizable code object, but later we can find out it was a bad idea to
optimize it. Alas, currently we don't have a proper event to communicate
this back to logger. Hence we temporary allow a code object to be viewed
as optimizable judging from logs while being unoptimizable judging from
heap traversal.
Review URL: http://codereview.chromium.org/6250054
http://code.google.com/p/v8/source/detail?r=6553
Modified:
/branches/bleeding_edge/test/cctest/cctest.status
/branches/bleeding_edge/test/cctest/test-log.cc
=======================================
--- /branches/bleeding_edge/test/cctest/cctest.status Thu Jan 27 04:31:24
2011
+++ /branches/bleeding_edge/test/cctest/cctest.status Tue Feb 1 04:39:02
2011
@@ -29,11 +29,6 @@
test-api/Bug*: FAIL
-# The problem is that a code object can get a different optimizable flag
-# in crankshaft after creation.
-test-log/EquivalenceOfLoggingAndTraversal: SKIP
-
-
##############################################################################
# BUG(281): This test fails on some Linuxes.
test-debug/DebuggerAgent: PASS, (PASS || FAIL) if $system == linux
=======================================
--- /branches/bleeding_edge/test/cctest/test-log.cc Tue Dec 7 03:31:57 2010
+++ /branches/bleeding_edge/test/cctest/test-log.cc Tue Feb 1 04:39:02 2011
@@ -1074,6 +1074,21 @@
return true;
}
}
+ // Code objects can change their optimizability: code object may start
+ // as optimizable, but later be discovered to be actually not
optimizable.
+ // Alas, we don't record this info as of now, so we allow cases when
+ // ref is thought to be optimizable while traverse finds it to be
+ // not optimizable.
+ if (ref_s[1] == '~') { // Code object used to be optimizable
+ if (new_s[1] == ' ') { // ...but later was set unoptimizable.
+ CHECK_EQ('"', ref_s[0]);
+ CHECK_EQ('"', new_s[0]);
+ ref_s += 2; // Cut the leading quote and the marker
+ ref_len -= 2;
+ new_s += 1; // Cut the leading quote only.
+ new_len -= 1;
+ }
+ }
return ref_len == new_len && strncmp(ref_s, new_s, ref_len) == 0;
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev