From d0508e7183b1a1b0cbe07371e1e43ea6cd8671b5 Mon Sep 17 00:00:00 2001 From: Matthias Braun Date: Mon, 21 Dec 2009 18:42:07 +0000 Subject: [PATCH] firmjni is totally outdated and useless nowadays [r26829] --- firmjni/README | 41 ------ firmjni/auxilliary/Dbginfo.c | 103 -------------- firmjni/auxilliary/Dbginfo.java | 108 -------------- firmjni/auxilliary/Heapanal.c | 180 ------------------------ firmjni/auxilliary/Heapanal.java | 52 ------- firmjni/testprograms/Empty.java | 88 ------------ firmjni/testprograms/IfElseExample.java | 137 ------------------ firmjni/testprograms/run-results.txt | 38 ----- 8 files changed, 747 deletions(-) delete mode 100644 firmjni/README delete mode 100644 firmjni/auxilliary/Dbginfo.c delete mode 100644 firmjni/auxilliary/Dbginfo.java delete mode 100644 firmjni/auxilliary/Heapanal.c delete mode 100644 firmjni/auxilliary/Heapanal.java delete mode 100644 firmjni/testprograms/Empty.java delete mode 100644 firmjni/testprograms/IfElseExample.java delete mode 100644 firmjni/testprograms/run-results.txt diff --git a/firmjni/README b/firmjni/README deleted file mode 100644 index 1ebcdeaff..000000000 --- a/firmjni/README +++ /dev/null @@ -1,41 +0,0 @@ - -This directory contains tools to generate a Java Native Interface for -libfirm. - -The tools generate for each libfirm header file a Java class -containing native method calls and static fields. The native methods -are derived from the methods in the corresponding libfirm header. The -method names are generated by replacing all occurences of '_x' by 'X'. -(The libfirm headers may not contain method names that only differ by -capitalizing the letter after an underscore.) The static fields are -derived from the enumerators in libfirm. - -The generator copies the comments from the header files to the Java -files. Sometimes it places the comments slightly wrong, i.e. a bit -too high or too low. As the comments are directly copied they refer -to the C names. - -Generating the JNI requires various syntactic properties of the header -files that restrict legal C. These restrictions will be relaxed at -some point. - -Do not use methods that accept or return function pointers. - -Some other methods generated might not work yet. Please report this -to goetz@ipd.info.uni-karlsruhe.de. - -WARNING: - -For now _all_ enumerators are generated into _all_ classes. This -results from deficiencies in the crecoder and will be removed at some -place. -Use only the enumerators defined in the corresponding c headers. -E.g., irm_X is defined in irmode.h, so use Irmode.irm_X, but not -Type.irm_X or any other definition in the java files. - -======================================================================== - -Call "make" in the build directory to generate the Java native -interface for firm. Call "make test" to test the interface. - -======================================================================== diff --git a/firmjni/auxilliary/Dbginfo.c b/firmjni/auxilliary/Dbginfo.c deleted file mode 100644 index 1cc7e32bb..000000000 --- a/firmjni/auxilliary/Dbginfo.c +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Project: libFIRM / Recoder frontend for libFIRM - * File name: firmjni/Dbginfo.c - * Purpose: Testing callback. - * Author: Goetz Lindenmaier - * Modified by: - * Created: 26.2.2003 - * CVS-ID: $Id$ - * Copyright: (c) 2003 Universität Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. - */ - -#include "Dbginfo.h" /* Generated. */ - -#include "firm.h" -#include "dbginfo.h" -#include - -static jmethodID pair_id; -static jmethodID sets_id; -static JNIEnv *my_env_jni_; -static jclass my_cls_jni_; - -struct dbg_info -{ - int idx; -}; - -static void -my_dbg_info_merge_pair(ir_node *nw, ir_node *old, dbg_action info) { - if (pair_id) { - (*my_env_jni_)->CallStaticVoidMethod(my_env_jni_, my_cls_jni_, pair_id, nw, old, info); - } -} - -static void -my_dbg_info_merge_sets(ir_node **new_nodes, int n_new_nodes, - ir_node **old_nodes, int n_old_nodes, - dbg_action info) { - if (sets_id) { - /* Convert argument arrays to java arrays. */ - jintArray j_new_nodes = (*my_env_jni_)->NewIntArray(my_env_jni_, n_new_nodes); - jintArray j_old_nodes = (*my_env_jni_)->NewIntArray(my_env_jni_, n_old_nodes); - if (j_new_nodes) - (*my_env_jni_)->SetIntArrayRegion(my_env_jni_, j_new_nodes, 0, n_new_nodes, (jint *)new_nodes); - if (j_old_nodes) - (*my_env_jni_)->SetIntArrayRegion(my_env_jni_, j_old_nodes, 0, n_old_nodes, (jint *)old_nodes); - - (*my_env_jni_)->CallStaticVoidMethod(my_env_jni_, my_cls_jni_, sets_id, j_new_nodes, j_old_nodes, info); - } -} - - -void Java_firmjni_Dbginfo_dbgInit (JNIEnv *env_jni_, jclass cls_jni_) { - pair_id = (*env_jni_)->GetStaticMethodID(env_jni_, cls_jni_, "myJavaDbgInfoMergePair", "(III)V"); - sets_id = (*env_jni_)->GetStaticMethodID(env_jni_, cls_jni_, "myJavaDbgInfoMergeSets", "([I[II)V"); - my_env_jni_ = env_jni_; - my_cls_jni_ = cls_jni_; - - dbg_init(&my_dbg_info_merge_pair, &my_dbg_info_merge_sets, NULL); -} - -/** Return the dbg object index of the given node. A new dbg object is created, if needed. */ -jint Java_firmjni_Dbginfo_getDbgInfoIdx (JNIEnv *env, jclass clss, jint jnode) -{ - /* - ir_node *node = (ir_node*) jnode; - - dbg_info *info = get_irn_dbg_info (node); - - if (0 == info) { - info = get_dbg_info (); - set_irn_dbg_info (node, info); - } - - return (info->idx); - */ - - return (0); -} - -/** Return the dbg object index of the given node, or -1 if none has been set. */ -jint Java_firmjni_Dbginfo_doGetDbgInfoIdx (JNIEnv *env, jclass clss, jint jnode) -{ - /* - ir_node *node = (ir_node*) jnode; - - dbg_info *info = get_irn_dbg_info (node); - - if (0 == info) { - return (-1); - } - - return (info->idx); - */ - - return (0); -} - -/** return the name of a debug action. */ -jstring Java_firmjni_Dbginfo_dbgActionToString (JNIEnv *env, jclass clss, jint a) { - return (*env)->NewStringUTF(env, dbg_action_2_str(a)); -} diff --git a/firmjni/auxilliary/Dbginfo.java b/firmjni/auxilliary/Dbginfo.java deleted file mode 100644 index 6388421d7..000000000 --- a/firmjni/auxilliary/Dbginfo.java +++ /dev/null @@ -1,108 +0,0 @@ -package firmjni; - -/* - * Project: libFIRM / Recoder frontend for libFIRM. - * File name: firmjni/Dbginfo.java - * Purpose: - * Author: Goetz Lindenmaier - * Modified by: - * Created: 26.2.2003 - * CVS-ID: $Id$ - * Copyright: (c) 2003 Universitaet Karlsruhe - * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. - */ - -import firmjni.*; - -public class Dbginfo { - - public Dbginfo (java.lang.Object file, int line) - { - _file = file; - _line = line; - } - - // Set env var LD_LIBRARY_PATH accordingly. - static { - System.loadLibrary("firmjni"); - dbgInit (); - } - - public static native void dbgInit (); - - /** Return the dbg object index of the given node. A new dbg object is created, if needed. */ - public static native int getDbgInfoIdx (int node); - - /** Return the dbg object index of the given node, or -1 if none has been set. */ - public static native int doGetDbgInfoIdx (int node); - - /** Return the name of a debug action. */ - public static native String dbgActionToString (int action); - - /** Return the dbg object of the given node, or null if none has been set. */ - public static Dbginfo getDbgInfo (int node) - { - int idx = doGetDbgInfoIdx (node); - - if (-1 == idx) { - return (null); - } - - return (_infos [idx]); - } - - public static void setDbgInfo (int node, java.lang.Object file, int line) - { - int idx = doGetDbgInfoIdx (node); - - if (_infos.length < idx) { - Dbginfo [] infos = new Dbginfo [idx+1]; - - for (int i = 0; i < _infos.length; i ++) { - infos [i] = _infos [i]; - } - - _infos = infos; - } - - _infos [idx] = new Dbginfo (file, line); - } - - public static void myJavaDbgInfoMergePair(int new_node, int old_node, int action) { - System.out.println("Optimization: "+ dbgActionToString(action)); - System.out.println("new Node " + Irnode.getIrnNodeNr(new_node)); - System.out.println("old Node " + Irnode.getIrnNodeNr(old_node)); - } - - public static void myJavaDbgInfoMergeSets(int new_nodes[], int old_nodes[], int action) { - System.out.println("Optimization: "+ dbgActionToString(action)); - System.out.print("new Nodes: "); - for (int i = 0; i < new_nodes.length; i++) - System.out.print(Irnode.getIrnNodeNr(new_nodes[i]) + ", "); - System.out.print("\nold Nodes: "); - for (int i = 0; i < old_nodes.length; i++) - System.out.print(Irnode.getIrnNodeNr(old_nodes[i]) + ", "); - System.out.println(""); - } - - /** -

Return the file this debug info object is from:

- */ - public java.lang.Object getFile () - { - return (_file); - } - - /** -

Return which line this debug info object is from:

- */ - public int getLine () - { - return (_line); - } - - private java.lang.Object _file; - private int _line; - - private static Dbginfo [] _infos = new Dbginfo [1000]; -} diff --git a/firmjni/auxilliary/Heapanal.c b/firmjni/auxilliary/Heapanal.c deleted file mode 100644 index 5c18bcf00..000000000 --- a/firmjni/auxilliary/Heapanal.c +++ /dev/null @@ -1,180 +0,0 @@ -/* -*- c -*- */ - -# include "Heapanal.h" - -# include "firm.h" -# include "irsimpletype.h" -# include "heapanal/heapanal.h" - -/* boilerplate stuff: */ -#include "irvrfy.h" -#include "trvrfy.h" -#include "irdump.h" - - -/* I/O: */ -# include - -/* - * Class: firmjni_Heapanal - * Method: initAnal - * Signature: ()V - */ -void Java_firmjni_Heapanal_initAnal (JNIEnv *env, jclass clazz) -{ - /* from interprete.c: */ - init_interprete (); -} - -/* - * Class: firmjni_Heapanal - * Method: deInitAnal - * Signature: ()V - */ -void Java_firmjni_Heapanal_deInitAnal (JNIEnv *env, jclass clazz) -{ - free_interprete (); -} - -/* - * Class: firmjni_Heapanal - * Method: analHeap - * Signature: (I)V - */ -void Java_firmjni_Heapanal_analHeap__I (JNIEnv *env, jclass clazz, jint fMethod) -{ - ha_analyse_heap((entity *) fMethod, 0); -} - -/* - * Class: firmjni_Heapanal - * Method: analHeap - * Signature: ()V - */ -void Java_firmjni_Heapanal_analHeap__ (JNIEnv *env, jclass clazz) -{ - int n_graphs; - int i; - - fprintf (stdout, "Hello, Heap!\n"); - - fprintf (stdout, "Ajacs Boilerplate:\n"); - { - entity **free_methods = 0; - int arr_len = 0; - - /* replace static constant fields by constants - @@@ This corrects some code that is invalid Firm!!! - Execute before irg_vrfy(). */ - /* ??? */ - /* opt_load_const_static(); */ - - /* dump graphs as they come out of the front end */ - char *suffix = "-fe"; - dump_all_types (suffix); - dump_class_hierarchy (true, suffix); - dump_all_ir_graphs(dump_ir_block_graph, suffix); - dump_all_ir_graphs(dump_ir_block_graph_w_types, suffix); - dump_all_ir_graphs(dump_cfg, suffix); - - /* verify constructed graphs */ - for (i = 0; i < get_irp_n_irgs(); i++) - irg_vrfy(get_irp_irg(i)); - - /* verify something */ - tr_vrfy(); - - - /* - * test loop construction intraprocedural - */ - for (i = 0; i < get_irp_n_irgs(); i++) { - construct_backedges(get_irp_irg(i)); - - if (1) { - dump_loop_information(1); - dump_ir_block_graph(get_irp_irg(i), "-1.2-intra-loop"); - dump_loop_information(0); - dump_loop_tree(get_irp_irg(i), "-1.2-intra"); - } - } - - DDMG (get_irp_main_irg ()); - assert(get_irp_main_irg()); - assert(get_irg_entity(get_irp_main_irg())); - - - /** Do interprocedural optimizations **/ - /* Analysis that builds the call graph and finds the free methods, - i.e. methods that are dereferenced. - Optimizes polymorphic calls.*/ - cgana(&arr_len, &free_methods); - /* Remove methods that are never called. */ - /* gc_irgs(arr_len, free_methods); */ - /* Build the interprocedural dataflow representation */ - cg_construct(arr_len, free_methods); - - /* Test construction of interprocedural loop information */ - /* construct_ip_backedges(); */ - - dump_loop_information(1); - dump_all_cg_block_graph("-1.2-inter-loop"); - dump_loop_information(0); - dump_loop_tree(get_irp_main_irg(), "-1.2-inter"); - - - fprintf (stdout, "HA:\n"); - DDMG (get_irp_main_irg ()); - - set_max_chi_height(8); /* change ad lib */ - set_initial_context_depth(4); /* change as needed */ - ha_analyse_heap(get_irg_entity(get_irp_main_irg()), 1); - - /* Remove the interprocedural dataflow representation */ - free(free_methods); - cg_destruct(); - - /* verify optimized graphs */ - for (i = 0; i < get_irp_n_irgs(); i++) { - irg_vrfy(get_irp_irg(i)); - } - - tr_vrfy(); - - } - - set_opt_dump_abstvals (1); - - /* ToDo: Dump ??? */ - - fprintf (stdout, "Bye, Heap!\n"); -} - - - -/* - * $Log$ - * Revision 1.6 2005/03/01 16:22:39 goetz - * changed irdump flag - * - * Revision 1.5 2004/11/15 12:38:16 goetz - * we need more and more libs at linking ... - * changed node numbers (unknown_entity) - * - * Revision 1.4 2004/08/14 10:09:52 goetz - * adapted to new semantics - * - * Revision 1.3 2004/04/30 09:00:01 goetz - * added configure support for heap analyses - * - * Revision 1.2 2004/04/29 13:59:11 liekweg - * Removed C++-Style comments --flo - * - * Revision 1.1 2004/04/29 12:11:36 liekweg - * Moved ... to aux --flo - * - * Revision 1.1 2004/04/27 12:41:31 liekweg - * Fixed ir/ana/irouts.c ir/ir/ircons.h ir/ir/irdump.c --flo - * Added aux/Heapanal.c aux/Heapanal.java --flo - * - */ diff --git a/firmjni/auxilliary/Heapanal.java b/firmjni/auxilliary/Heapanal.java deleted file mode 100644 index 64eb85420..000000000 --- a/firmjni/auxilliary/Heapanal.java +++ /dev/null @@ -1,52 +0,0 @@ -// -// Time-stamp: <20.01.2004 14:37:44h liekweg> -// -// $Id$ -// - -package firmjni; - -/** -

Start C-Firm Heap Analysis from Java.

- - @version $Id$ - @since Mon Jan 19 16:15:41 2004 - @author F. Liekweg, Universität Karlsruhe (TH), Germany - */ - -public class Heapanal -{ - static { - System.loadLibrary("firmjni"); - System.loadLibrary("heapanal"); - } - - private Heapanal () {} - - public static native void initAnal (); - public static native void deInitAnal (); - - /** Analyse one method */ - public static native void analHeap (int firmMethod); - /** Analyse all methods */ - public static native void analHeap (); - - - // ToDo: Zugriff auf die ir_node->ana.... - Felder. - - /* interprete.c: - typedef struct obset abstval; - - - set_irn_abst_value(ir_node *n, abstval *os); - abstval *get_irn_abst_value(ir_node *n); - */ - -} - - -/* - Local Variables: - c-basic-offset: 2 - End: -*/ diff --git a/firmjni/testprograms/Empty.java b/firmjni/testprograms/Empty.java deleted file mode 100644 index 21bfea46c..000000000 --- a/firmjni/testprograms/Empty.java +++ /dev/null @@ -1,88 +0,0 @@ -/* - * 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. - */ - -import firmjni.*; - -/** -*** An empty Firm program. -*** -*** This file constructs the ir for the following pseudo-program: -*** -*** main() { -*** return; -*** } -*** -*** -**/ -class Empty { - public static void main (String[] args) { - - System.out.println("\nCreating an IR graph: EMPTY..."); - - /* init library: Java did not support the callback, so ALWAYS use 0 here */ - Firm.initFirm(0); - - /** Build type information for the procedure. **/ - - /* FIRM was designed for oo languages where all methods belong to a class. - * For imperative languages like C we view a file as a large class containing - * all functions in this file as methods. - * This class is generated automatically. */ - int owner = Irprog.getGlobType(); - - /* The type of the method */ - 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. */ - int ent = Entity.newEntity (owner, name, proc_main); - - /** Build code for the procedure. **/ - - /* Generates the basic graph for the method represented by entity ent, that - * is, generates start and end blocks and nodes and a first, initial block. - * The constructor needs to know the number of local variables (including - * the arguments) in the method. - */ - int irg = Irgraph.newIrGraph (ent, 0); - - /* The constructor new_ir_graph() generated a region to place nodes in. - * This region is accessible via the attribut current_block of irg and - * it is not matured. - * Generate the return node into this region. The Return node is needed to - * return at least the memory. */ - int []in = new int[0]; - int x = Ircons.newReturn (Ircons.getStore(), in.length, in); - - /* Now we generated all instructions for this block and all its predecessor - * blocks so we can mature it. (There are not too much.) */ - 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.addImmBlockPred (Irgraph.getIrgEndBlock(irg), x); - /* Now we can mature the end block as all it's predecessors are known. */ - Ircons.matureImmBlock (Irgraph.getIrgEndBlock(irg)); - - /* Verify the graph. Finds some very bad errors in the graph. */ - 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(""); - - - System.out.println("use xvcg to view this graph:"); - System.out.println("/ben/goetz/bin/xvcg GRAPHNAME\n"); - } -} diff --git a/firmjni/testprograms/IfElseExample.java b/firmjni/testprograms/IfElseExample.java deleted file mode 100644 index 33781365f..000000000 --- a/firmjni/testprograms/IfElseExample.java +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Project: libFIRM - * File name: firmjni/testprograms/IfElseExample.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. - */ - -import firmjni.*; - -/** -* This file constructs the ir for the following pseudo-program: -* -* main() { -* int a = 0; -* int b = 1; -* -* if (a > 2) -* { a = b; } -* else -* { b = 2; } -* -* return a, b; -**/ - -class IfElseExample { - - public static void main (String[] args) { - - System.out.println("\nCreating an IR graph: IfElseExample..."); - - /* init library */ - Firm.initFirm(0); - Dbginfo.dbgInit(); - - /** Build type information for the compilation unit. **/ - - /* FIRM was designed for oo languages where all methods belong to a class. - * For imperative languages like C we view a file as a large class - * containing all functions in this file as methods. - * This class is generated automatically. */ - int owner = Irprog.getGlobType(); - - /* Basic type information for primitive type int. */ - int primIntTypeName = Ident.newIdFromStr("int"); - int primIntType = Type.newTypePrimitive(primIntTypeName, Irmode.getModeIs()); - - /* The type of the method */ - int tpName = Ident.newIdFromStr("IF_ELSE_EXAMPLE_main_p"); - int procMain = Type.newTypeMethod(tpName, 0, 2); - Type.setMethodResType(procMain, 0, primIntType); - Type.setMethodResType(procMain, 1, primIntType); - - /* An entity representing the method. Owner of the entity is the global - class type mentioned above. */ - int name = Ident.newIdFromStr("IF_ELSE_EXAMPLE_main"); - int ent = Entity.newEntity (owner, name, procMain); - - /** Build code for the procedure. **/ - - int irg = Irgraph.newIrGraph (ent, 2); - - /* Generate two constants */ - int c0 = Ircons.newConst (Irmode.getModeIs(), Tv.newTarvalFromLong (0, Irmode.getModeIs())); - int c1 = Ircons.newConst (Irmode.getModeIs(), Tv.newTarvalFromLong (1, Irmode.getModeIs())); - - /* Set a and b to constants */ - Ircons.setValue (0, c0); /* this (0) is variable a */ - Ircons.setValue (1, c1); /* this (1) is variable b */ - - /* The expression that evaluates the condition */ - int c2 = Ircons.newConst(Irmode.getModeIs(), - Tv.newTarvalFromLong (2, Irmode.getModeIs())); - int cmpGt = Ircons.newProj(Ircons.newCmp(Ircons.getValue(0, Irmode.getModeIs()), c2), - Irmode.getModeb(), Irnode.pn_Cmp_Gt); - - int x = Ircons.newCond (cmpGt); - int f = Ircons.newProj (x, Irmode.getModeX(), 0); /* if condition is false */ - int t = Ircons.newProj (x, Irmode.getModeX(), 1); /* if condition is true */ - - Ircons.matureImmBlock (Irgraph.getIrgCurrentBlock(irg)); - - /* generate and fill the then block */ - int b = Ircons.newImmBlock (); - Ircons.addImmBlockPred (b, t); - Ircons.setValue (0, Ircons.getValue(1, Irmode.getModeIs())); - Ircons.matureImmBlock (b); - int x_then = Ircons.newJmp (); - - /* generate and fill the else block */ - b = Ircons.newImmBlock (); - Ircons.addImmBlockPred (b, f); - Ircons.setValue (1, Ircons.newConst (Irmode.getModeIs(), - Tv.newTarvalFromLong (2, Irmode.getModeIs()))); - Ircons.matureImmBlock (b); - int x_else = Ircons.newJmp (); - - /* generate the join block and add all cfg edges */ - b = Ircons.newImmBlock (); - Ircons.addImmBlockPred (b, x_then); - Ircons.addImmBlockPred (b, x_else); - - int[] in = new int[2]; /* this is the array containing the return parameters */ - in[0] = Ircons.getValue(0, Irmode.getModeIs()); - in[1] = Ircons.getValue(1, Irmode.getModeIs()); - x = Ircons.newReturn (Ircons.getStore(), 2, in); - - /* Now generate all instructions for this block and all its predecessor - blocks so we can mature it. */ - Ircons.matureImmBlock (Irgraph.getIrgCurrentBlock(irg)); - - /* This adds the in edge of the end block which originates at the - return statement. The return node passes control flow to the - end block. */ - Ircons.addImmBlockPred (Irgraph.getIrgEndBlock(irg), x); - /* Now we can mature the end block as all it's predecessors are known. */ - Ircons.matureImmBlock (Irgraph.getIrgEndBlock(irg)); - - Irvrfy.irgVerify(irg, Irvrfy.VRFY_NORMAL); - Irgraph.setIrgPhaseState (irg, Irgraph.phase_high); - - System.out.println("Done building the graph. Optimizing it."); - Irgopt.localOptimizeGraph(irg); - Irgopt.deadNodeElimination(irg); - - Irdump.dumpIrBlockGraph (irg, ""); - Irdump.dumpAllTypes(""); - - System.out.println("use xvcg to view this graph:"); - System.out.println("/ben/goetz/bin/xvcg GRAPHNAME\n"); - - } -} diff --git a/firmjni/testprograms/run-results.txt b/firmjni/testprograms/run-results.txt deleted file mode 100644 index 106aba664..000000000 --- a/firmjni/testprograms/run-results.txt +++ /dev/null @@ -1,38 +0,0 @@ - -Creating an IR graph: EMPTY... -Done building the graph. Dumping it. -use xvcg to view this graph: -/ben/goetz/bin/xvcg GRAPHNAME - - -Creating an IR graph: IfElseExample... -Optimization: dbg_const_eval -new Node 37 -old Node 36 -Optimization: dbg_opt_auxnode -new Nodes: 39, -old Nodes: 40, 38, 39, -Optimization: dbg_opt_cse -new Nodes: 39, -old Nodes: 39, 39, -Optimization: dbg_opt_auxnode -new Nodes: 23, -old Nodes: 41, 38, 23, -Optimization: dbg_dead_code -new Node 42 -old Node 42 -Optimization: dbg_opt_cse -new Nodes: 34, -old Nodes: 47, 34, -Optimization: dbg_straightening -new Nodes: 31, -old Nodes: 46, 39, -Done building the graph. Optimizing it. -Optimization: dbg_straightening -new Nodes: 31, -old Nodes: 46, 39, -Optimization: dbg_opt_cse -new Nodes: 39, -old Nodes: 48, 39, -use xvcg to view this graph: -/ben/goetz/bin/xvcg GRAPHNAME -- 2.20.1