From a6edf5906077958f6e9f4fe041ee11f65e679ce6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?G=C3=B6tz=20Lindenmaier?= Date: Thu, 10 Jul 2003 09:25:09 +0000 Subject: [PATCH] implemented irmode mode_P_mach stuff new reference for firmjni: node numbers changed [r1453] --- firmjni/testprograms/run-results.txt | 24 ++++++++++++------------ ir/ir/irdump.c | 3 +++ ir/ir/irmode.c | 9 +++++++++ ir/ir/irmode.h | 2 +- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/firmjni/testprograms/run-results.txt b/firmjni/testprograms/run-results.txt index 4ea630160..7e74bd0ff 100644 --- a/firmjni/testprograms/run-results.txt +++ b/firmjni/testprograms/run-results.txt @@ -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 diff --git a/ir/ir/irdump.c b/ir/ir/irdump.c index f97bd645b..ffe8e36ea 100644 --- a/ir/ir/irdump.c +++ b/ir/ir/irdump.c @@ -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); } diff --git a/ir/ir/irmode.c b/ir/ir/irmode.c index be59854db..c5542dc50 100644 --- a/ir/ir/irmode.c +++ b/ir/ir/irmode.c @@ -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. diff --git a/ir/ir/irmode.h b/ir/ir/irmode.h index 33f3ddeaf..f4b4073c8 100644 --- a/ir/ir/irmode.h +++ b/ir/ir/irmode.h @@ -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, -- 2.20.1