Make name constant
[libfirm] / ir / ir / irop_t.h
1 /*
2  * Project:     libFIRM
3  * File name:   ir/ir/irop_t.h
4  * Purpose:     Representation of opcode of intermediate operation -- private header.
5  * Author:      Christian Schaefer
6  * Modified by: Goetz Lindenmaier
7  * Created:
8  * CVS-ID:      $Id$
9  * Copyright:   (c) 1998-2003 Universität Karlsruhe
10  * Licence:     This file protected by GPL -  GNU GENERAL PUBLIC LICENSE.
11  */
12
13
14 # ifndef _IROP_T_H_
15 # define _IROP_T_H_
16
17 # include "irop.h"
18
19 /** the type of an ir_op */
20 struct ir_op {
21   opcode code;
22   ident *name;
23   size_t attr_size;     /**< Space needed in memory for private attributes */
24   int labeled;          /**< Output edge labels on in-edges in vcg graph */
25   int pinned;           /**< How to deal with the node in cse, pre. */
26 };
27
28 /**
29  * Create a new ir operation.
30  *
31  * @param code     the opcode, one of type \c opcode
32  * @param name     the printable name of this opcode
33  * @param p        wheater operations of this opcode are pinned or floating
34  * @param labeled  if set, output edge labels on in-edges in vcg graph wil be generated
35  *
36  * @return The genenerated ir operation.
37  */
38 ir_op * new_ir_op (opcode code, const char *name, op_pinned p,
39                    int labeled, size_t attr_size);
40
41 /** initialize the irop module */
42 void init_op (void);
43
44 #endif /* _IROP_T_H_ */