/*
- * Copyright (C) 1995-2011 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.
+ * Copyright (C) 2012 University of Karlsruhe.
*/
/**
ir_type *type; /**< the type of which the object pointer must be */
} io_attr;
-/** Cast attributes. */
-typedef struct cast_attr {
- ir_type *type; /**< Type of the casted node. */
-} cast_attr;
-
/** Load attributes. */
typedef struct load_attr {
except_attr exc; /**< The exception attribute. MUST be the first one. */
- ir_volatility volatility:1; /**< The volatility of this Load operation. */
- ir_align unaligned:1; /**< The align attribute of this Load operation. */
+ __extension__ ir_volatility volatility:1; /**< The volatility of this Load operation. */
+ __extension__ ir_align unaligned:1; /**< The align attribute of this Load operation. */
ir_mode *mode; /**< The mode of this Load operation. */
} load_attr;
/** Store attributes. */
typedef struct store_attr {
except_attr exc; /**< the exception attribute. MUST be the first one. */
- ir_volatility volatility:1; /**< The volatility of this Store operation. */
- ir_align unaligned:1; /**< The align attribute of this Store operation. */
+ __extension__ ir_volatility volatility:1; /**< The volatility of this Store operation. */
+ __extension__ ir_align unaligned:1; /**< The align attribute of this Store operation. */
} store_attr;
typedef struct phi_attr {
ir_type *type; /**< Type of the copied entity. */
} copyb_attr;
-/** Bound attribute. */
-typedef struct bound_attr {
- except_attr exc; /**< The exception attribute. MUST be the first one. */
-} bound_attr;
-
/** Div attribute. */
typedef struct div_attr {
except_attr exc; /**< The exception attribute. MUST be the first one. */
alloc_attr alloc; /**< For Alloc. */
free_attr free; /**< For Free. */
io_attr instof; /**< For InstOf */
- cast_attr cast; /**< For Cast. */
load_attr load; /**< For Load. */
store_attr store; /**< For Store. */
phi_attr phi; /**< For Phi. */
confirm_attr confirm; /**< For Confirm: compare operation and region. */
except_attr except; /**< For Phi node construction in case of exceptions */
copyb_attr copyb; /**< For CopyB operation */
- bound_attr bound; /**< For Bound operation */
div_attr div; /**< For Div operation */
mod_attr mod; /**< For Mod operation */
asm_attr assem; /**< For ASM operation. */
ir_type *frame_type; /**< A class type representing the stack frame.
Can include "inner" methods. */
ir_node *anchor; /**< Pointer to the anchor node of this graph. */
- struct obstack *obst; /**< The obstack where all of the ir_nodes live. */
- ir_node *current_block; /**< Current block for newly gen_*()-erated ir_nodes. */
+ struct obstack obst; /**< The obstack where all of the ir_nodes live. */
+ ir_node *current_block; /**< Current block for new_*()ly created ir_nodes. */
/* -- Fields indicating different states of irgraph -- */
ir_graph_properties_t properties;
ir_graph_constraints_t constraints;
- irg_phase_state phase_state; /**< Compiler phase. */
op_pin_state irg_pinned_state; /**< Flag for status of nodes. */
ir_typeinfo_state typeinfo_state; /**< Validity of type information. */
irg_callee_info_state callee_info_state; /**< Validity of callee information. */
- ir_class_cast_state class_cast_state; /**< Kind of cast operations in code. */
unsigned mem_disambig_opt; /**< Options for the memory disambiguator. */
unsigned fp_model; /**< floating point model of the graph. */
ir_visited_t self_visited; /**< visited flag of the irg */
- unsigned estimated_node_count; /**< estimated number of nodes in this graph,
- updated after every walk */
irg_edges_info_t edge_info; /**< edge info for automatic outs */
ir_node **idx_irn_map; /**< Array mapping node indexes to nodes. */
ident **global_asms; /**< An array of global ASM insertions. */
/* -- states of and access to generated information -- */
- irg_phase_state phase_state; /**< The state of construction. */
-
ir_node **ip_outedges; /**< A huge Array that contains all out edges
in interprocedural view. */
size_t max_callgraph_recursion_depth; /**< needed in callgraph. */
double max_method_execution_frequency; /**< needed in callgraph. */
loop_nesting_depth_state lnd_state; /**< The state of loop nesting depth information. */
- ir_class_cast_state class_cast_state; /**< The state of cast operations in code. */
ir_entity_usage_computed_state globals_entity_usage_state;
ir_label_t last_label_nr; /**< The highest label number for generating unique labels. */