introduce Switch node
authorMatthias Braun <matze@braunis.de>
Wed, 2 Nov 2011 17:57:20 +0000 (18:57 +0100)
committerMatthias Braun <matze@braunis.de>
Wed, 2 Nov 2011 19:00:48 +0000 (20:00 +0100)
commit1c89dc2a2c3cccd6e29fcfbf65248496db66ab92
tree1f9b5703506458cd6e85589d60a4e40694584d56
parent2198e37181132ff7ab566c94970c41e8c6b273c5
introduce Switch node

This is the new way of handling switch-jumps. The node contains a table
which maps (ranges of) input values to proj numbers. Compared to a
Cond-node this results in a clean consecutive sequence of Proj numbers
(no searching for a free number for the default_pn anymore) and allows
factoring multiple cases jumping to the same block in a single Proj
(though we still need the optimisation in cfopt for that).
38 files changed:
include/libfirm/firm_types.h
include/libfirm/irnode.h
ir/ana/irconsconfirm.c
ir/be/arm/arm_emitter.c
ir/be/arm/arm_new_nodes.c
ir/be/arm/arm_new_nodes.h
ir/be/arm/arm_nodes_attr.h
ir/be/arm/arm_spec.pl
ir/be/arm/arm_transform.c
ir/be/arm/bearch_arm.c
ir/be/begnuas.c
ir/be/begnuas.h
ir/be/ia32/ia32_emitter.c
ir/be/ia32/ia32_new_nodes.c
ir/be/ia32/ia32_new_nodes.h
ir/be/ia32/ia32_nodes_attr.h
ir/be/ia32/ia32_spec.pl
ir/be/ia32/ia32_transform.c
ir/be/sparc/sparc_emitter.c
ir/be/sparc/sparc_new_nodes.c
ir/be/sparc/sparc_nodes_attr.h
ir/be/sparc/sparc_spec.pl
ir/be/sparc/sparc_transform.c
ir/ir/irdump.c
ir/ir/irdumptxt.c
ir/ir/irnode.c
ir/ir/irnode_t.h
ir/ir/irop.c
ir/ir/iropt.c
ir/ir/irtypes.h
ir/ir/irverify.c
ir/lower/lower_dw.c
ir/lower/lower_switch.c
ir/opt/cfopt.c
ir/opt/combo.c
ir/opt/fp-vrp.c
ir/opt/jumpthreading.c
scripts/ir_spec.py