Add missing returns.
[libfirm] / firmjni / testprograms / Empty.java
index 927601e..21bfea4 100644 (file)
@@ -1,15 +1,16 @@
-import firmjni.*;
+/*
+ * Project:     libFIRM
+ * File name:   firmjni/testprograms/Empty.java
+ * Purpose:     This is an example of how to use the JNI interface of Firm.
+ * Author:      Goetz Lindenmaier
+ * Modified by:
+ * Created:
+ * CVS-ID:      $Id$
+ * Copyright:   (c) 2002 Universitaet Karlsruhe
+ * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ */
 
-/* Copyright (C) 2002 by Universitaet Karlsruhe
-** All rights reserved.
-**
-** Author: Goetz Lindenmaier
-**
-** $id$
-**
-** This is an example of how to use the JNI interface of Firm.
-**
-*/
+import firmjni.*;
 
 /**
 ***  An empty Firm program.
@@ -27,8 +28,8 @@ class Empty {
 
        System.out.println("\nCreating an IR graph: EMPTY...");
 
-       /* init library */
-       Firm.initFirm();
+       /* init library: Java did not support the callback, so ALWAYS use 0 here */
+       Firm.initFirm(0);
 
        /** Build type information for the procedure. **/
 
@@ -39,7 +40,7 @@ class Empty {
        int owner = Irprog.getGlobType();
 
        /* The type of the method */
-       int name = Ident.idFromStr("main", 4);
+       int name = Ident.newIdFromStr("EMPTY_main");
        int proc_main = Type.newTypeMethod(name, 0, 0);
        /* An entity representing the method.  Owner of the entity is the global
           class type mentioned above. */
@@ -59,33 +60,26 @@ class Empty {
         * it is not matured.
         * Generate the return node into this region. The Return node is needed to
         * return at least the memory. */
-       //ir_node *in[0]; /* this is the array containing the return parameters */
        int []in  = new int[0];
        int x = Ircons.newReturn (Ircons.getStore(), in.length, in);
 
-       /* Test enumerators */
-       if (Irnode.getIrnModecode(x) != Irmode.irm_X)
-           System.out.println(" wrong modecode");
-       else
-           System.out.println(" proper modecode Execution.");
-
        /* Now we generated all instructions for this block and all its predecessor
         * blocks so we can mature it.  (There are not too much.) */
-       Ircons.matureBlock (Irgraph.getIrgCurrentBlock(irg));
+       Ircons.matureImmBlock (Irgraph.getIrgCurrentBlock(irg));
 
        /* This adds the in edge of the end block which originates at the return statement.
         * The return node passes controlflow to the end block.  */
-       Ircons.addInEdge (Irgraph.getIrgEndBlock(irg), x);
+       Ircons.addImmBlockPred (Irgraph.getIrgEndBlock(irg), x);
        /* Now we can mature the end block as all it's predecessors are known. */
-       Ircons.matureBlock (Irgraph.getIrgEndBlock(irg));
+       Ircons.matureImmBlock (Irgraph.getIrgEndBlock(irg));
 
        /* Verify the graph.  Finds some very bad errors in the graph. */
-       //irg_vrfy(irg);
-       Ircons.finalizeCons (irg);
+       Irvrfy.irgVerify(irg, Irvrfy.VRFY_NORMAL);
+       Irgraph.setIrgPhaseState (irg, Irgraph.phase_high);
 
        System.out.println("Done building the graph.  Dumping it.");
-       Irdump.dumpIrBlockGraph (irg);
-       Irdump.dumpAllTypes();
+       Irdump.dumpIrBlockGraph (irg, "");
+       Irdump.dumpAllTypes("");
 
 
        System.out.println("use xvcg to view this graph:");