-/* (C) 2002 by Universitaet Karlsruhe
-* All rights reserved.
-*
-* Authors: Goetz Lindenmaier
-*
-* testprogram.
-*/
+/*
+ * Project: libFIRM
+ * File name: testprograms/endless_loop.c
+ * Purpose: Representation of an endless loop.
+ * 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.
+ */
+
-/* $ID$ */
# include <stdio.h>
# include <string.h>
*
* VAR_A is some extern variable.
*
-* main(int a) { // pos 0
-* int b = 1; // pos 1
-* int h; // pos 2
+* main(int a) { // pos 0
+* int b = 1; // pos 1
+* int h; // pos 2
*
* while (0 == 0) loop {
* h = a;
printf("\nCreating an IR graph: ENDLESS_LOOP_EXAMPLE...\n");
- init_firm ();
+ init_firm (NULL);
set_optimize(1);
set_opt_constant_folding(1);
/* Generate two values */
set_value (0, new_Proj(get_irg_args(irg), mode_Is, 0));
- set_value (1, new_Const (mode_Is, tarval_from_long (mode_Is, 1)));
+ set_value (1, new_Const (mode_Is, new_tarval_from_long (1, mode_Is)));
x = new_Jmp();
mature_block (get_irg_current_block(irg));
/* generate a block for the loop header and the conditional branch */
r = new_immBlock ();
add_in_edge (r, x);
- x = new_Cond (new_Proj(new_Cmp(new_Const (mode_Is, tarval_from_long (mode_Is, 0)),
- new_Const (mode_Is, tarval_from_long (mode_Is, 0))),
- mode_b, Eq));
+ x = new_Cond (new_Proj(new_Cmp(new_Const (mode_Is, new_tarval_from_long (0, mode_Is)),
+ new_Const (mode_Is, new_tarval_from_long (0, mode_Is))),
+ mode_b, Eq));
f = new_Proj (x, mode_X, 0);
t = new_Proj (x, mode_X, 1);
/* set VAR_A to constant value */
set_store (new_Proj (new_Store (get_store (),
- new_Const (mode_P, tarval_P_from_str ("VAR_A")),
- get_value(1, mode_Is)),
+ new_simpleSel(
+ get_store(),
+ get_irg_globals(irg),
+ new_entity(get_glob_type(),id_from_str("VAR_A",6),prim_t_int)),
+ get_value(1, mode_Is)),
mode_M, 0));
mature_block (b);
/* output the vcg file */
printf("Done building the graph. Dumping it.\n");
- //turn_of_edge_labels();
+ /* turn_of_edge_labels(); */
dump_keepalive_edges(true);
dump_all_types();
dump_ir_block_graph (irg);