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

implemented irmode mode_P_mach stuff

new reference for firmjni: node numbers changed

[r1453]
parent daa8e505
......@@ -7,23 +7,23 @@ use xvcg to view this graph:
Creating an IR graph: IfElseExample...
Optimization: 2
new Nodes: 26,
old Nodes: 27, 25, 26,
new Nodes: 35,
old Nodes: 36, 34, 35,
Optimization: 2
new Nodes: 10,
old Nodes: 28, 25, 10,
new Nodes: 19,
old Nodes: 37, 34, 19,
Optimization: 4
new Nodes: 18,
old Nodes: 33, 26,
new Nodes: 27,
old Nodes: 42, 35,
Optimization: 1
new Nodes: 21,
old Nodes: 48, 21,
new Nodes: 30,
old Nodes: 57, 30,
Optimization: 1
new Nodes: 19,
old Nodes: 51, 19,
new Nodes: 28,
old Nodes: 60, 28,
Done building the graph. Optimizing it.
Optimization: 4
new Nodes: 18,
old Nodes: 33, 26,
new Nodes: 27,
old Nodes: 42, 35,
use xvcg to view this graph:
/ben/goetz/bin/xvcg GRAPHNAME
......@@ -1331,6 +1331,7 @@ static void clear_link(ir_node * node, void * env) {
}
static void collect_blocks_floats_cg(ir_node * node, pmap * map) {
assert(node); assert(map);
if (is_Block(node)
|| node_floats(node)
|| get_irn_op(node) == op_Bad
......@@ -1340,9 +1341,11 @@ static void collect_blocks_floats_cg(ir_node * node, pmap * map) {
{
ir_node ** arr;
arr = entry->value;
assert(arr);
ARR_APP1(ir_node *, arr , node);
} else {
ir_node ** arr = NEW_ARR_F(ir_node *, 1);
assert(arr);
arr[0] = node;
pmap_insert(map, current_ir_graph, arr);
}
......
......@@ -156,6 +156,7 @@ ir_mode *mode_C;
ir_mode *mode_U;
ir_mode *mode_b;
ir_mode *mode_P;
ir_mode *mode_P_mach;
/* * *
* functions defined in irmode.h
......@@ -184,6 +185,14 @@ INLINE ir_mode *get_modeBB(void) { ANNOUNCE(); return mode_BB; }
INLINE ir_mode *get_modeANY(void) { ANNOUNCE(); return mode_ANY; }
INLINE ir_mode *get_modeBAD(void) { ANNOUNCE(); return mode_BAD; }
ir_mode *get_modeP_mach(void) { ANNOUNCE(); return mode_P_mach; }
void set_modeP_mach(ir_mode *p) {
ANNOUNCE();
assert(mode_is_reference(p));
mode_P_mach = p;
}
/**
* Registers a new mode if not defined yet, else returns
* the "equivalent" one.
......
......@@ -305,7 +305,7 @@ ir_mode *get_modeANY(void);
ir_mode *get_modeBAD(void);
ir_mode *get_modeP_mach(void);
ir_mode *set_modeP_mach(ir_mode *p);
void set_modeP_mach(ir_mode *p);
/**
Functions to check, whether a modecode is signed, float, int, num, data,
......
Supports Markdown
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