Removed unused variables.
[libfirm] / ir / be / be_types.h
1 /*
2  * Copyright (C) 1995-2008 University of Karlsruhe.  All right reserved.
3  *
4  * This file is part of libFirm.
5  *
6  * This file may be distributed and/or modified under the terms of the
7  * GNU General Public License version 2 as published by the Free Software
8  * Foundation and appearing in the file LICENSE.GPL included in the
9  * packaging of this file.
10  *
11  * Licensees holding valid libFirm Professional Edition licenses may use
12  * this file in accordance with the libFirm Commercial License.
13  * Agreement provided with the Software.
14  *
15  * This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16  * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17  * PURPOSE.
18  */
19
20 /**
21  * @file
22  * @brief       Forward declarations of backend types
23  * @author      Matthias Braun
24  * @version     $Id: besched.h 25982 2009-05-15 22:09:38Z matze $
25  */
26 #ifndef FIRM_BE_TYPES_H
27 #define FIRM_BE_TYPES_H
28
29 #include "firm_types.h"
30
31 typedef unsigned int sched_timestep_t;
32
33 typedef struct arch_register_class_t     arch_register_class_t;
34 typedef struct arch_register_req_t       arch_register_req_t;
35 typedef struct arch_register_t           arch_register_t;
36 typedef struct arch_flag_t               arch_flag_t;
37 typedef struct arch_inverse_t            arch_inverse_t;
38 typedef struct arch_isa_if_t             arch_isa_if_t;
39 typedef struct arch_env_t                arch_env_t;
40
41 /**
42  * Some flags describing a node in more detail.
43  */
44 typedef enum arch_irn_flags_t {
45         arch_irn_flags_none             = 0,       /**< Node flags. */
46         arch_irn_flags_dont_spill       = 1U << 0, /**< This must not be spilled. */
47         arch_irn_flags_rematerializable = 1U << 1, /**< This can be replicated instead of spilled/reloaded. */
48         arch_irn_flags_modify_flags     = 1U << 2, /**< I modify flags, used by the
49                                                         default check_modifies
50                                                         implementation in beflags */
51         arch_irn_flags_simple_jump      = 1U << 3, /**< a simple jump instruction */
52         arch_irn_flags_not_scheduled    = 1U << 4, /**< node must not be scheduled*/
53         /** mark node as belonging to the prolog. No spill instructions must appear
54          * in a schedule before a prolog node */
55         arch_irn_flags_prolog           = 1U << 5,
56         /** mark node as belonging to the epilog. No spill instructions must appear
57          * after an epilog node */
58         arch_irn_flags_epilog           = 1U << 6,
59         arch_irn_flags_backend          = 1U << 7, /**< begin of custom backend
60                                                         flags */
61 } arch_irn_flags_t;
62 ENUM_BITSET(arch_irn_flags_t)
63
64 typedef struct be_lv_t                  be_lv_t;
65 typedef struct be_lv_info_t             be_lv_info_t;
66
67 typedef struct be_abi_call_flags_bits_t be_abi_call_flags_bits_t;
68 typedef union  be_abi_call_flags_t      be_abi_call_flags_t;
69 typedef struct be_abi_callbacks_t       be_abi_callbacks_t;
70 typedef struct be_abi_call_t            be_abi_call_t;
71 typedef struct be_abi_irg_t             be_abi_irg_t;
72 typedef struct be_stack_layout_t        be_stack_layout_t;
73
74 typedef struct be_dom_front_info_t      be_dom_front_info_t;
75
76 typedef struct be_execution_unit_type_t be_execution_unit_type_t;
77 typedef struct be_execution_unit_t      be_execution_unit_t;
78 typedef struct be_machine_t             be_machine_t;
79
80 typedef struct backend_info_t           backend_info_t;
81 typedef struct sched_info_t             sched_info_t;
82 typedef struct reg_out_info_t           reg_out_info_t;
83
84 typedef struct be_main_env_t be_main_env_t;
85 typedef struct be_options_t  be_options_t;
86
87 #endif