projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
backend: put ignore regs into beirg
[libfirm]
/
ir
/
ir
/
irio.c
diff --git
a/ir/ir/irio.c
b/ir/ir/irio.c
index
6f4483a
..
a946e62
100644
(file)
--- a/
ir/ir/irio.c
+++ b/
ir/ir/irio.c
@@
-58,6
+58,7
@@
typedef struct io_env_t
int line;
ir_type **fixedtypes;
struct obstack obst;
int line;
ir_type **fixedtypes;
struct obstack obst;
+ ir_graph *irg;
} io_env_t;
typedef enum typetag_t
} io_env_t;
typedef enum typetag_t
@@
-323,7
+324,7
@@
static void write_mode(io_env_t *env, ir_mode *mode)
fputc(' ', env->file);
}
fputc(' ', env->file);
}
-static void write_tarval(io_env_t *env, tarval *tv)
+static void write_tarval(io_env_t *env,
ir_
tarval *tv)
{
char buf[1024];
write_mode(env, get_tarval_mode(tv));
{
char buf[1024];
write_mode(env, get_tarval_mode(tv));
@@
-674,8
+675,8
@@
static void export_node(ir_node *irn, void *ctx)
fprintf(env->file, "] { ");
fprintf(env->file, "] { ");
- switch (opcode) {
-
#include "gen_irio_export.inl"
+ switch (opcode) {
+#include "gen_irio_export.inl"
}
fputs("}\n", env->file);
}
}
fputs("}\n", env->file);
}
@@
-1028,7
+1029,7
@@
static ir_node *get_node_or_dummy(io_env_t *env, long nodenr)
{
ir_node *node = get_node_or_null(env, nodenr);
if (node == NULL) {
{
ir_node *node = get_node_or_null(env, nodenr);
if (node == NULL) {
- node = new_
Dummy(
mode_X);
+ node = new_
r_Dummy(env->irg,
mode_X);
set_id(env, nodenr, node);
}
return node;
set_id(env, nodenr, node);
}
return node;
@@
-1160,11
+1161,11
@@
static ir_cons_flags get_cons_flags(io_env_t *env)
return flags;
}
return flags;
}
-static tarval *read_tv(io_env_t *env)
+static
ir_
tarval *read_tv(io_env_t *env)
{
{
- ir_mode *tvmode = read_mode(env);
- char *str = read_word(env);
-
tarval
*tv = new_tarval_from_str(str, strlen(str), tvmode);
+ ir_mode
*tvmode = read_mode(env);
+ char
*str = read_word(env);
+
ir_tarval
*tv = new_tarval_from_str(str, strlen(str), tvmode);
obstack_free(&env->obst, str);
return tv;
obstack_free(&env->obst, str);
return tv;
@@
-1412,11
+1413,12
@@
static void import_entity(io_env_t *env)
/** Parses the whole type graph. */
static int parse_typegraph(io_env_t *env)
{
/** Parses the whole type graph. */
static int parse_typegraph(io_env_t *env)
{
+ ir_graph *old_irg = env->irg;
keyword_t kwkind;
EXPECT('{');
keyword_t kwkind;
EXPECT('{');
-
current_ir_graph
= get_const_code_irg();
+
env->irg
= get_const_code_irg();
/* parse all types first */
while (true) {
/* parse all types first */
while (true) {
@@
-1442,6
+1444,7
@@
static int parse_typegraph(io_env_t *env)
break;
}
}
break;
}
}
+ env->irg = old_irg;
return 1;
}
return 1;
}
@@
-1453,7
+1456,7
@@
static int read_node_header(io_env_t *env, long *nodenr, long **preds,
*nodename = read_word(env);
*nodenr = read_long(env);
*nodename = read_word(env);
*nodenr = read_long(env);
- ARR_RESIZE(
ir_node *
, *preds, 0);
+ ARR_RESIZE(
long
, *preds, 0);
EXPECT('[');
for (numpreds = 0; !feof(env->file); numpreds++) {
EXPECT('[');
for (numpreds = 0; !feof(env->file); numpreds++) {
@@
-1481,7
+1484,7
@@
static int parse_graph(io_env_t *env, ir_graph *irg)
const char *nodename;
ir_node *node, *newnode;
const char *nodename;
ir_node *node, *newnode;
-
current_ir_graph
= irg;
+
env->irg
= irg;
EXPECT('{');
EXPECT('{');
@@
-1514,7
+1517,7
@@
static int parse_graph(io_env_t *env, ir_graph *irg)
case iro_End:
{
ir_node *newendblock = get_node(env, preds[0]);
case iro_End:
{
ir_node *newendblock = get_node(env, preds[0]);
- newnode = get_irg_end(
current_ir_graph
);
+ newnode = get_irg_end(
irg
);
exchange(get_nodes_block(newnode), newendblock);
for (i = 0; i < numpreds - 1; i++)
add_irn_n(newnode, prednodes[i]);
exchange(get_nodes_block(newnode), newendblock);
for (i = 0; i < numpreds - 1; i++)
add_irn_n(newnode, prednodes[i]);
@@
-1524,7
+1527,7
@@
static int parse_graph(io_env_t *env, ir_graph *irg)
case iro_Start:
{
ir_node *newstartblock = get_node(env, preds[0]);
case iro_Start:
{
ir_node *newstartblock = get_node(env, preds[0]);
- newnode = get_irg_start(
current_ir_graph
);
+ newnode = get_irg_start(
irg
);
exchange(get_nodes_block(newnode), newstartblock);
break;
}
exchange(get_nodes_block(newnode), newstartblock);
break;
}
@@
-1538,12
+1541,12
@@
static int parse_graph(io_env_t *env, ir_graph *irg)
goto endloop;
}
goto endloop;
}
- newnode = new_
Block(
numpreds - 1, prednodes);
+ newnode = new_
r_Block(irg,
numpreds - 1, prednodes);
break;
}
case iro_Anchor:
break;
}
case iro_Anchor:
- newnode =
current_ir_graph
->anchor;
+ newnode =
irg
->anchor;
for (i = 0; i < numpreds - 1; i++)
set_irn_n(newnode, i, prednodes[i]);
set_irn_n(newnode, -1, get_node(env, preds[0]));
for (i = 0; i < numpreds - 1; i++)
set_irn_n(newnode, i, prednodes[i]);
set_irn_n(newnode, -1, get_node(env, preds[0]));
@@
-1554,7
+1557,7
@@
static int parse_graph(io_env_t *env, ir_graph *irg)
long entnr = read_long(env);
union symconst_symbol sym;
sym.entity_p = get_entity(env, entnr);
long entnr = read_long(env);
union symconst_symbol sym;
sym.entity_p = get_entity(env, entnr);
- newnode = new_
SymConst(
mode_P, sym, symconst_addr_ent);
+ newnode = new_
r_SymConst(irg,
mode_P, sym, symconst_addr_ent);
break;
}
break;
}