Commit 86e7054f authored by Götz Lindenmaier's avatar Götz Lindenmaier
Browse files

type for SymConst

[r4241]
parent 30faf8c2
......@@ -870,6 +870,10 @@ set_Const_type (ir_node *node, type *tp) {
assert (get_type_mode(tp) == get_irn_mode(node));
}
if ((get_irn_node_nr(node) == 259216) && (tp == unknown_type))
assert(0);
node->attr.con.tp = tp;
}
......@@ -930,7 +934,6 @@ void set_SymConst_entity (ir_node *node, entity *ent) {
node->attr.i.sym.entity_p = ent;
}
union symconst_symbol
get_SymConst_symbol (ir_node *node) {
assert (node->op == op_SymConst);
......@@ -944,6 +947,18 @@ set_SymConst_symbol (ir_node *node, union symconst_symbol sym) {
node->attr.i.sym = sym;
}
type *
get_SymConst_value_type (ir_node *node) {
assert (node->op == op_SymConst);
return node->attr.i.tp = skip_tid(node->attr.i.tp);
}
void
set_SymConst_value_type (ir_node *node, type *tp) {
assert (node->op == op_SymConst);
node->attr.i.tp = tp;
}
ir_node *
get_Sel_mem (ir_node *node) {
assert (node->op == op_Sel);
......
......@@ -87,8 +87,7 @@ typedef struct ir_node ir_node;
#endif
#ifdef __cplusplus
extern "C" {
extern "C" {
#endif
/**
......@@ -223,9 +222,13 @@ new_ir_node (dbg_info *db,
*
*/
/** This works for all except Block. To express the difference to
* access routines that work for all nodes we use infix "nodes" and do not
* name this function get_irn_block. */
/** Return the block the node belongs to.
*
* This works for all except Block. It can return Blocks or the Bad node.
*
* To express the difference to access routines that work for all
* nodes we use infix "nodes" and do not name this function
* get_irn_block. */
ir_node *get_nodes_block (ir_node *node);
void set_nodes_block (ir_node *node, ir_node *block);
......@@ -430,6 +433,12 @@ union symconst_symbol get_SymConst_symbol (ir_node *node);
void set_SymConst_symbol (ir_node *node,
union symconst_symbol sym);
/** Access the type of the value represented by the SymConst.
*
* Example: primitive type int for SymConst size. */
type *get_SymConst_value_type (ir_node *node);
void set_SymConst_value_type (ir_node *node, type *tp);
ir_node *get_Sel_mem (ir_node *node);
void set_Sel_mem (ir_node *node, ir_node *mem);
ir_node *get_Sel_ptr (ir_node *node); /* ptr to the object to select from */
......@@ -756,7 +765,7 @@ ir_node *get_Filter_cg_pred(ir_node *node, int pos);
/** Return true if parameter is a memory operation.
*
* A memory operation is an operation that directly changes the
* A memory operation is an operation that changes the
* memory. I.e., a Load or a Store operation.
*/
int is_memop(ir_node *node);
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment