X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Fircgcons.h;h=2aa37d3891083c829fb83ad7ddd15ac578128be8;hb=23ea16875f38dc0c067cce24f64b5c70f3acc496;hp=ab5284d39d1b81e2e22f2f1e4ee561a360743dd6;hpb=da9c4a1519a03db4b6a4cbd79dff05f69387611f;p=libfirm diff --git a/ir/ir/ircgcons.h b/ir/ir/ircgcons.h index ab5284d39..2aa37d389 100644 --- a/ir/ir/ircgcons.h +++ b/ir/ir/ircgcons.h @@ -1,28 +1,52 @@ -/* ------------------------------------------------------------------- - * $Id$ - * ------------------------------------------------------------------- - * Auf- und Abbau der interprozeduralen Darstellung (Explizite - * interprozedurale Abhängigkeiten). +/* + * Project: libFIRM + * File name: ir/ir/ircgcons.h + * Purpose: Construction and removal of interprocedural representation + * (explicit interprocedural dependencies). + * Author: Hubert Schmid + * Modified by: + * Created: 09.06.2002 + * CVS-ID: $Id$ + * Copyright: (c) 2002-2003 Universität Karlsruhe + * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + */ +#ifndef _FIRM_IR_ICGCONS_H_ +#define _FIRM_IR_ICGCONS_H_ + +#include "firm_types.h" + +/** The state of the interprocedural view. * - * Erstellt: Hubert Schmid, 09.06.2002 - * ---------------------------------------------------------------- */ - - -#ifndef _CONSTRUCT_H_ -#define _CONSTRUCT_H_ - - -#include "entity.h" - - -/* Aufbau der interprozeduralen Darstellung. In den Call-Operationen - * mussen alle potentialen callees gespeichert sein. */ + * This value indicates the state of the interprocedural view. + */ +typedef enum { + ip_view_no, /**< The interprocedural view is not constructed. There are no + view specific nodes (EndReg, Filter, Break ...) in any graph. */ + ip_view_valid, /**< The interprocedural view is valid. */ + ip_view_invalid /**< The interprocedural view is invalid. Specific nodes are + all still in the representation, but the graph is no more complete. */ +} ip_view_state; + +/** Return the current state of the interprocedural view. */ +ip_view_state get_irp_ip_view_state(void); +/** Set the state of the interprocedural view to invalid. */ +void set_irp_ip_view_invalid(void); + +/** Construction of the interprocedural view. + * + * Construction of the interprocedural view. A prior analysis must have set + * all possible callees in the corresponding fields of Call nodes. Sets + * ip_view_valid in irp. + * + * @arg free_methods_arr: An array of all free methods, i.e., methods that + * are external visible. These methods get an 'Unknown' + * caller. + * @arg arr_len The number of free methods. */ void cg_construct(int arr_len, entity *free_methods_arr[]); -/* Abbau der interprozeduralen (Sichten-) Darstellung, in eine - * gewöhnliche intraprozedurale Darstellung */ +/** Deconstruction of the interprocedural view. Reduces memory consumption of + the ir. Sets ip_view_no in irp. */ void cg_destruct(void); - -#endif /* _CONSTRUCT_H_ */ +#endif /* _FIRM_IR_ICGCONS_H_ */