*** empty log message ***
[libfirm] / testprograms / oo_program_example.c
index dcd5ca0..835d8be 100644 (file)
@@ -1,10 +1,14 @@
-/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe
-* All rights reserved.
-*
-* Authors: Goetz Lindenmaier
-*
-* testprogram.
-*/
+/*
+ * Project:     libFIRM
+ * File name:   testprograms/oo_program_example.c
+ * Purpose:     A complex example.
+ * Author:      Goetz Lindenmaier
+ * Modified by:
+ * Created:
+ * CVS-ID:      $Id$
+ * Copyright:   (c) 1999-2003 Universität Karlsruhe
+ * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
+ */
 
 # include <stdio.h>
 # include <string.h>
@@ -110,12 +114,13 @@ main(void)
   set_irp_main_irg(main_irg);
 
   /* Make the constants.  They are independent of a block. */
-  c2 = new_Const (mode_Is, tarval_from_long (mode_Is, 2));
-  c5 = new_Const (mode_Is, tarval_from_long (mode_Is, 5));
+  c2 = new_Const (mode_Is, new_tarval_from_long (2, mode_Is));
+  c5 = new_Const (mode_Is, new_tarval_from_long (5, mode_Is));
 
   /* There is only one block in main, it contains the allocation and the calls. */
   /* Allocate the defined object and generate the type information. */
-  obj_size = new_SymConst((type_or_id_p)class_prima, size);
+  symconst_symbol sym = {class_prima};
+  obj_size = new_SymConst(sym, symconst_size);
   obj_o    = new_Alloc(get_store(), obj_size, class_prima, heap_alloc);
   set_store(new_Proj(obj_o, mode_M, 0));  /* make the changed memory visible */
   obj_o    = new_Proj(obj_o, mode_P, 2);  /* remember the pointer to the object */
@@ -240,9 +245,32 @@ main(void)
   }
 
   printf("Dumping graphs of all procedures and a type graph.\n");
+  /* Touch ld names to distinguish names from oo_inline names. */
+  get_entity_ld_ident(proc_set_a_e);
+  get_entity_ld_ident(proc_c_e);
+
+  dump_consts_local(1);
+  turn_off_edge_labels();
+
+  dump_all_ir_graphs(dump_ir_graph);
   dump_all_ir_graphs(dump_ir_block_graph);
+  dump_all_ir_graphs(dump_ir_graph_w_types);
   dump_all_ir_graphs(dump_ir_block_graph_w_types);
+  dump_all_ir_graphs(dump_type_graph);
   dump_all_types();
+  dump_class_hierarchy (true);
+
+  entity **free_methods;
+  int arr_len;
+  cgana(&arr_len, &free_methods, 0);
+  cg_construct(arr_len, free_methods);
+
+  interprocedural_view = 1;
+  dump_ir_graph(main_irg);
+  dump_ir_block_graph(main_irg);
+  dump_ir_graph_w_types(main_irg);
+  dump_ir_block_graph_w_types(main_irg);
+  dump_all_cg_block_graph();
 
   printf("Use xvcg to view these graphs:\n");
   printf("/ben/goetz/bin/xvcg GRAPHNAME\n\n");