big refactoring of arch_XXX functions
authorMatthias Braun <matze@braunis.de>
Mon, 15 Aug 2011 11:41:11 +0000 (13:41 +0200)
committerMatthias Braun <matze@braunis.de>
Mon, 15 Aug 2011 12:03:03 +0000 (14:03 +0200)
commit41dc42afc8d00e0f364711ed0c919e4e29cb20e4
tree89b7e8ab7e295f9fcfe18a40bfb001b91c4e5f34
parented7cc1daadbdd28b5550157080dcbbbea348c097
big refactoring of arch_XXX functions

This tries to get the names in a consistent format. We basically have 2
views on register allocation/constraints now:

1) Register Requirements and Assigments are per-instruction. Each
   instruction has requirements on its inputs and outputs, register get
   assigned for outputs of an instruction (assignment is an attribute of
   an instruction, not of the Proj-nodes).
   The internal datastructures model this form!

   The functions here have the form:
     arch_get_irn_register_req_in(node, input_nr)
     arch_get_irn_register_in(node, input_nr)
     arch_get_irn_register_req_out(node, output_nr)
     arch_set_irn_register_out(node, output_nr, register)

2) Register Requirements and Assignments are on firm-values. This view
   allows to query/assign requirements and registers at the Proj nodes
   instead of the repsective predecessors.
   This is a convenience interface modeled on top of the other!

   The functions have the form:
     arch_get_irn_register_req(node)
     arch_get_irn_register(node)
     arch_set_irn_register(node, register)
54 files changed:
ir/be/TEMPLATE/TEMPLATE_emitter.c
ir/be/TEMPLATE/TEMPLATE_new_nodes.c
ir/be/TEMPLATE/TEMPLATE_transform.c
ir/be/amd64/amd64_emitter.c
ir/be/amd64/amd64_new_nodes.c
ir/be/amd64/amd64_spec.pl
ir/be/amd64/amd64_transform.c
ir/be/arm/arm_emitter.c
ir/be/arm/arm_new_nodes.c
ir/be/arm/arm_spec.pl
ir/be/arm/arm_transform.c
ir/be/beabi.c
ir/be/beabihelper.c
ir/be/bearch.c
ir/be/bearch.h
ir/be/becopyheur.c
ir/be/becopyheur2.c
ir/be/becopyheur4.c
ir/be/becopyilp.c
ir/be/becopyilp2.c
ir/be/becopyopt.c
ir/be/beflags.c
ir/be/beifg.c
ir/be/beinfo.c
ir/be/beinsn.c
ir/be/beirgmod.c
ir/be/belistsched.c
ir/be/belower.c
ir/be/benode.c
ir/be/bepbqpcoloring.c
ir/be/beprefalloc.c
ir/be/beschednormal.c
ir/be/beschedregpress.c
ir/be/bespill.c
ir/be/bespillbelady.c
ir/be/bespilldaemel.c
ir/be/bessaconstr.c
ir/be/bessadestr.c
ir/be/bestack.c
ir/be/beverify.c
ir/be/ia32/bearch_ia32.c
ir/be/ia32/ia32_common_transform.c
ir/be/ia32/ia32_emitter.c
ir/be/ia32/ia32_finish.c
ir/be/ia32/ia32_new_nodes.c
ir/be/ia32/ia32_optimize.c
ir/be/ia32/ia32_spec.pl
ir/be/ia32/ia32_transform.c
ir/be/ia32/ia32_x87.c
ir/be/sparc/bearch_sparc.c
ir/be/sparc/sparc_finish.c
ir/be/sparc/sparc_new_nodes.c
ir/be/sparc/sparc_spec.pl
ir/be/sparc/sparc_transform.c