/* * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ package org.graalvm.compiler.nodes.test; import org.junit.Test; import org.graalvm.compiler.core.test.GraalCompilerTest; import org.graalvm.compiler.java.LargeLocalLiveness; import org.graalvm.compiler.java.SmallLocalLiveness; public class LoopLivenessTest extends GraalCompilerTest { /** * Exercise {@link SmallLocalLiveness} with 64 loops. */ public static void manyLoopsSmall() { for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } } /** * Exercise {@link LargeLocalLiveness} with 64 loops. */ @SuppressWarnings("unused") public static void manyLoopsLarge() { int i0; int i1; int i2; int i3; int i4; int i5; int i6; int i7; int i8; int i9; int i10; int i11; int i12; int i13; int i14; int i15; int i16; int i17; int i18; int i19; int i20; int i21; int i22; int i23; int i24; int i25; int i26; int i27; int i28; int i29; int i30; int i31; int i32; int i33; int i34; int i35; int i36; int i37; int i38; int i39; int i40; int i41; int i42; int i43; int i44; int i45; int i46; int i47; int i48; int i49; int i50; int i51; int i52; int i53; int i54; int i55; int i56; int i57; int i58; int i59; int i60; int i61; int i62; int i63; for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { } } } @Test public void testManyLoopsSmall() { test("manyLoopsSmall"); } @Test public void testManyLoopsLarge() { test("manyLoopsLarge"); } }