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
}
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
{
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);
}
ir_mode *mode_U;
ir_mode *mode_b;
ir_mode *mode_P;
+ir_mode *mode_P_mach;
/* * *
* functions defined in irmode.h
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.
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,