TEMPLATE_nodes_attr.h 1.41 KB
Newer Older
Christian Würdig's avatar
Christian Würdig committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/*
 * Copyright (C) 1995-2007 University of Karlsruhe.  All right reserved.
 *
 * This file is part of libFirm.
 *
 * This file may be distributed and/or modified under the terms of the
 * GNU General Public License version 2 as published by the Free Software
 * Foundation and appearing in the file LICENSE.GPL included in the
 * packaging of this file.
 *
 * Licensees holding valid libFirm Professional Edition licenses may use
 * this file in accordance with the libFirm Commercial License.
 * Agreement provided with the Software.
 *
 * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
 * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE.
 */

Matthias Braun's avatar
Matthias Braun committed
20
21
22
23
24
25
26
/**
 * @file
 * @brief   attributes attached to all TEMPLATE nodes
 * @version $Id$
 */
#ifndef FIRM_BE_TEMPLATE_TEMPLATE_NODES_ATTR_H
#define FIRM_BE_TEMPLATE_TEMPLATE_NODES_ATTR_H
27

28
#include "../bearch_t.h"
29

Matthias Braun's avatar
Matthias Braun committed
30
31
32
33
typedef struct TEMPLATE_attr_t  TEMPLATE_attr_t;

struct TEMPLATE_attr_t
{
34
35
	arch_irn_flags_t flags;     /**< indicating if spillable, rematerializeable ... etc. */
	int              n_res;     /**< number of results for this node */
36

Matthias Braun's avatar
Matthias Braun committed
37
38
	const arch_register_req_t **in_req;  /**< register requirements for arguments */
	const arch_register_req_t **out_req; /**< register requirements for results */
39

40
41
	/* must be last, dynamically allocated */
	const arch_register_t *slots[1];         /**< register slots for assigned registers */
Matthias Braun's avatar
Matthias Braun committed
42
};
43

Matthias Braun's avatar
Matthias Braun committed
44
#endif