/* * Copyright (c) 2013, 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 com.oracle.graal.compiler.ptx.test; import org.junit.Test; import java.lang.reflect.Method; public class ControlTest extends PTXTestBase { @Test public void testControl() { compile("testFor2I"); compile("testWhile2I"); // compile("testSwitch1I"); // compile("testIfThen1Z"); compile("testStatic"); // compile("testSync"); // compile("testSyncObject"); } public static int testFor2I(int a, int b) { int indexed = 0; for (int i = a; i < b; i++) { indexed++; } return indexed; } public static int testWhile2I(int a, int b) { int indexed = 0; while (a < b) { indexed++; } return indexed; } /* * NYI - PTXLIRGenerator.emitSequentialSwitch * * public static int testSwitch1I(int a) { * switch (a) { * case 1: * return 2; * case 2: * return 3; * default: * return 4; * } * } */ /* * NYI - PTXControlFlow * * public static int testIfThen1Z(boolean a) { * if (a) { * return 2; * } else { * return 3; * } * } */ @SuppressWarnings("unused") private static Object foo = null; public static boolean testStatic(Object o) { foo = o; return true; } /* * Throws ClassCastException - PTXLIRGenerator not HotSpotLIRGenerator as there * is no com.oracle.graal.hotspot.ptx yet. * * public static synchronized void testSync() { * } * * public static void testSyncObject(Object o) { * synchronized (o) { * } * } */ public static void main(String[] args) { ControlTest test = new ControlTest(); for (Method m : ControlTest.class.getMethods()) { String name = m.getName(); if (m.getAnnotation(Test.class) == null && name.startsWith("test")) { System.out.println(name + ": \n" + new String(test.compile(name).getTargetCode())); } } } }