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

Unified Diff: test/mjsunit/elements-transition-hoisting.js

Issue 10868068: Revert r12342 "Flush monomorphic ICs on context disposal instead of context exit." because of canar… (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 4 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « test/mjsunit/debug-script.js ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: test/mjsunit/elements-transition-hoisting.js
diff --git a/test/mjsunit/elements-transition-hoisting.js b/test/mjsunit/elements-transition-hoisting.js
index 878beabf3911d36c9c4ab4569b015d6f1604cb78..5fb3889c6e1b214755e68f0ec35ce34ed87e4af9 100644
--- a/test/mjsunit/elements-transition-hoisting.js
+++ b/test/mjsunit/elements-transition-hoisting.js
@@ -25,7 +25,8 @@
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-// Flags: --allow-natives-syntax --smi-only-arrays --noparallel-recompilation
+// Flags: --allow-natives-syntax --smi-only-arrays --expose-gc
+// Flags: --noparallel-recompilation
// Ensure that ElementsKind transitions in various situations are hoisted (or
// not hoisted) correctly, don't change the semantics programs and don't trigger
@@ -39,6 +40,11 @@ if (support_smi_only_arrays) {
print("Tests do NOT include smi-only arrays.");
}
+// Force existing ICs from previous stress runs to be flushed, otherwise the
+// assumptions in this test about when deoptimizations get triggered are not
+// valid.
+gc();
+
if (support_smi_only_arrays) {
// Make sure that a simple elements array transitions inside a loop before
// stores to an array gets hoisted in a way that doesn't generate a deopt in
@@ -60,7 +66,6 @@ if (support_smi_only_arrays) {
testDoubleConversion4(new Array(5));
testDoubleConversion4(new Array(5));
assertTrue(2 != %GetOptimizationStatus(testDoubleConversion4));
- %ClearFunctionTypeFeedback(testDoubleConversion4);
// Make sure that non-element related map checks that are not preceded by
// transitions in a loop still get hoisted in a way that doesn't generate a
@@ -86,7 +91,6 @@ if (support_smi_only_arrays) {
testExactMapHoisting(new Array(5));
testExactMapHoisting(new Array(5));
assertTrue(2 != %GetOptimizationStatus(testExactMapHoisting));
- %ClearFunctionTypeFeedback(testExactMapHoisting);
// Make sure that non-element related map checks do NOT get hoisted if they
// depend on an elements transition before them and it's not possible to hoist
@@ -118,7 +122,6 @@ if (support_smi_only_arrays) {
testExactMapHoisting2(new Array(5));
// Temporarily disabled - see bug 2176.
// assertTrue(2 != %GetOptimizationStatus(testExactMapHoisting2));
- %ClearFunctionTypeFeedback(testExactMapHoisting2);
// Make sure that non-element related map checks do get hoisted if they use
// the transitioned map for the check and all transitions that they depend
@@ -147,7 +150,6 @@ if (support_smi_only_arrays) {
testExactMapHoisting3(new Array(5));
testExactMapHoisting3(new Array(5));
assertTrue(2 != %GetOptimizationStatus(testExactMapHoisting3));
- %ClearFunctionTypeFeedback(testExactMapHoisting3);
function testDominatingTransitionHoisting1(a) {
var object = new Object();
@@ -170,7 +172,6 @@ if (support_smi_only_arrays) {
testDominatingTransitionHoisting1(new Array(5));
testDominatingTransitionHoisting1(new Array(5));
assertTrue(2 != %GetOptimizationStatus(testDominatingTransitionHoisting1));
- %ClearFunctionTypeFeedback(testDominatingTransitionHoisting1);
function testHoistingWithSideEffect(a) {
var object = new Object();
@@ -190,9 +191,8 @@ if (support_smi_only_arrays) {
testHoistingWithSideEffect(new Array(5));
testHoistingWithSideEffect(new Array(5));
assertTrue(2 != %GetOptimizationStatus(testHoistingWithSideEffect));
- %ClearFunctionTypeFeedback(testHoistingWithSideEffect);
- function testStraightLineDupeElimination(a,b,c,d,e,f) {
+ function testStraightLineDupeElinination(a,b,c,d,e,f) {
var count = 3;
do {
assertTrue(true);
@@ -205,29 +205,28 @@ if (support_smi_only_arrays) {
} while (--count > 3);
}
- testStraightLineDupeElimination(new Array(0, 0, 0, 0, 0),0,0,0,0,.5);
- testStraightLineDupeElimination(new Array(0, 0, 0, 0, 0),0,0,0,.5,0);
- testStraightLineDupeElimination(new Array(0, 0, 0, 0, 0),0,0,.5,0,0);
- testStraightLineDupeElimination(new Array(0, 0, 0, 0, 0),0,.5,0,0,0);
- testStraightLineDupeElimination(new Array(0, 0, 0, 0, 0),.5,0,0,0,0);
- testStraightLineDupeElimination(new Array(.1,.1,.1,.1,.1),0,0,0,0,.5);
- testStraightLineDupeElimination(new Array(.1,.1,.1,.1,.1),0,0,0,.5,0);
- testStraightLineDupeElimination(new Array(.1,.1,.1,.1,.1),0,0,.5,0,0);
- testStraightLineDupeElimination(new Array(.1,.1,.1,.1,.1),0,.5,0,0,0);
- testStraightLineDupeElimination(new Array(.1,.1,.1,.1,.1),.5,0,0,0,0);
- testStraightLineDupeElimination(new Array(5),.5,0,0,0,0);
- testStraightLineDupeElimination(new Array(5),0,.5,0,0,0);
- testStraightLineDupeElimination(new Array(5),0,0,.5,0,0);
- testStraightLineDupeElimination(new Array(5),0,0,0,.5,0);
- testStraightLineDupeElimination(new Array(5),0,0,0,0,.5);
- testStraightLineDupeElimination(new Array(5),.5,0,0,0,0);
- testStraightLineDupeElimination(new Array(5),0,.5,0,0,0);
- testStraightLineDupeElimination(new Array(5),0,0,.5,0,0);
- testStraightLineDupeElimination(new Array(5),0,0,0,.5,0);
- testStraightLineDupeElimination(new Array(5),0,0,0,0,.5);
- %OptimizeFunctionOnNextCall(testStraightLineDupeElimination);
- testStraightLineDupeElimination(new Array(5));
- testStraightLineDupeElimination(new Array(5));
- assertTrue(2 != %GetOptimizationStatus(testStraightLineDupeElimination));
- %ClearFunctionTypeFeedback(testStraightLineDupeElimination);
+ testStraightLineDupeElinination(new Array(0, 0, 0, 0, 0),0,0,0,0,.5);
+ testStraightLineDupeElinination(new Array(0, 0, 0, 0, 0),0,0,0,.5,0);
+ testStraightLineDupeElinination(new Array(0, 0, 0, 0, 0),0,0,.5,0,0);
+ testStraightLineDupeElinination(new Array(0, 0, 0, 0, 0),0,.5,0,0,0);
+ testStraightLineDupeElinination(new Array(0, 0, 0, 0, 0),.5,0,0,0,0);
+ testStraightLineDupeElinination(new Array(.1,.1,.1,.1,.1),0,0,0,0,.5);
+ testStraightLineDupeElinination(new Array(.1,.1,.1,.1,.1),0,0,0,.5,0);
+ testStraightLineDupeElinination(new Array(.1,.1,.1,.1,.1),0,0,.5,0,0);
+ testStraightLineDupeElinination(new Array(.1,.1,.1,.1,.1),0,.5,0,0,0);
+ testStraightLineDupeElinination(new Array(.1,.1,.1,.1,.1),.5,0,0,0,0);
+ testStraightLineDupeElinination(new Array(5),.5,0,0,0,0);
+ testStraightLineDupeElinination(new Array(5),0,.5,0,0,0);
+ testStraightLineDupeElinination(new Array(5),0,0,.5,0,0);
+ testStraightLineDupeElinination(new Array(5),0,0,0,.5,0);
+ testStraightLineDupeElinination(new Array(5),0,0,0,0,.5);
+ testStraightLineDupeElinination(new Array(5),.5,0,0,0,0);
+ testStraightLineDupeElinination(new Array(5),0,.5,0,0,0);
+ testStraightLineDupeElinination(new Array(5),0,0,.5,0,0);
+ testStraightLineDupeElinination(new Array(5),0,0,0,.5,0);
+ testStraightLineDupeElinination(new Array(5),0,0,0,0,.5);
+ %OptimizeFunctionOnNextCall(testStraightLineDupeElinination);
+ testStraightLineDupeElinination(new Array(5));
+ testStraightLineDupeElinination(new Array(5));
+ assertTrue(2 != %GetOptimizationStatus(testStraightLineDupeElinination));
}
« no previous file with comments | « test/mjsunit/debug-script.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698