X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firgmod.h;h=13bada4f2468b858e1091de9d528a9bf26413360;hb=e570f00fb465d212dde403160e97ab45d36d1d7e;hp=edacfca2720fc8f812feb1358c0693ac92c87578;hpb=512afc22ee29255cfeef35deb41980831691c0fb;p=libfirm diff --git a/ir/ir/irgmod.h b/ir/ir/irgmod.h index edacfca27..13bada4f2 100644 --- a/ir/ir/irgmod.h +++ b/ir/ir/irgmod.h @@ -1,38 +1,50 @@ -/* Copyright (C) 1998 - 2000 by Universitaet Karlsruhe -** All rights reserved. -** -** Authors: Martin Trapp, Christian Schaefer -** -** irgmod.h: ir graph modification -*/ +/* + * Project: libFIRM + * File name: ir/ir/irgmod.h + * Purpose: Support for ir graph modification. + * Author: Martin Trapp, Christian Schaefer + * Modified by: Goetz Lindenmaier + * Created: + * CVS-ID: $Id$ + * Copyright: (c) 1998-2003 Universität Karlsruhe + * Licence: This file protected by GPL - GNU GENERAL PUBLIC LICENSE. + */ + +/** + * + * @file irgmod.h + * + * ir graph modification. + * + * @author Martin Trapp, Christian Schaefer + */ -/* $Id$ */ # ifndef _IRGMOD_H_ # define _IRGMOD_H_ # include "irnode.h" -/* Exchanges two nodes by conserving edges leaving old (i.e., pointers +/** Exchanges two nodes by conserving edges leaving old (i.e., pointers pointing to old). Turns the old node into an Id. Requires that current_ir_graph is set properly. */ -inline void exchange (ir_node *old, ir_node *new); +INLINE void exchange (ir_node *old, ir_node *nw); -/* Turns a node into a "useless" Tuple. The Tuple node just forms a tuple +/** Turns a node into a "useless" Tuple. The Tuple node just forms a tuple from several inputs. The predecessors of the tuple have to be set by hand. The block predecessor automatically remains the same. This is useful if a node returning a tuple is removed, but the Projs extracting values from the tuple are not available. */ void turn_into_tuple (ir_node *node, int arity); -/* Walks over the passed ir graph and collects all Phi nodes as a +/** Walks over the passed ir graph and collects all Phi nodes as a list built with the link field in their corresponding block. Further it collects all Proj nodes in a list of the node producing the tuple. In case of nested tuples the Projs are collected in the node producing the outermost Tuple. */ void collect_phiprojs(ir_graph *irg); -/* Parts a block into two. This is useful to insert other blocks within a +/** Parts a block into two. This is useful to insert other blocks within a given block. Adds a new block (new_block) in the control flow before the block (old_block) of node. Moves node and its predecessors from old_block to