1. 10 Nov, 2011 1 commit
  2. 04 Nov, 2011 4 commits
  3. 02 Nov, 2011 2 commits
    • Matthias Braun's avatar
      introduce Switch node · 1c89dc2a
      Matthias Braun authored
      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).
      1c89dc2a
    • Matthias Braun's avatar
      generate irdump proj-number lookup tables · 1e799c3b
      Matthias Braun authored
      1e799c3b
  4. 27 Oct, 2011 5 commits
  5. 25 Oct, 2011 1 commit
  6. 20 Oct, 2011 2 commits
  7. 17 Oct, 2011 2 commits
  8. 27 Sep, 2011 2 commits
  9. 23 Sep, 2011 1 commit
  10. 22 Sep, 2011 1 commit
  11. 21 Sep, 2011 1 commit
  12. 15 Sep, 2011 3 commits
    • yb9976's avatar
      Fixed inconsistent uses of DEBUG_ONLY. · 7d5b3311
      yb9976 authored
      7d5b3311
    • Matthias Braun's avatar
      lower_mode_b: refactoring, make it more robust · a00e3544
      Matthias Braun authored
      - Make API private as it should only be called by backends
      - Let ia32 backend create special ia32_Set nodes instead of relying
        on muxes which must not be touched anymore
      - Does not create ConvB nodes anymore but instead produces the Cmp
        directly. (All backends did this anyway during code-selection so I was
        able to leave this case out code-selection)
      - First collect nodes to lower, then lower them. This avoids robustness
        problems when transforming the graph while at the same time walking
        it.
      a00e3544
    • Matthias Braun's avatar
      some cleanups for middleend node creation in backends · 799d89c9
      Matthias Braun authored
      Some backends create nodes in their lower_for_target phases already.
      These nodes are placeholders for real backend nodes later, in contrast
      they do not have register requirements or backend attributes. Simplified
      this by allowing custom dumpers for them and leaving out the backend
      node structs.
      799d89c9
  13. 13 Sep, 2011 1 commit
  14. 12 Sep, 2011 1 commit
  15. 08 Sep, 2011 1 commit
  16. 01 Sep, 2011 2 commits
  17. 23 Aug, 2011 1 commit
  18. 19 Aug, 2011 3 commits
  19. 17 Aug, 2011 2 commits
  20. 15 Aug, 2011 3 commits
    • Matthias Braun's avatar
      big refactoring of arch_XXX functions · 41dc42af
      Matthias Braun authored
      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)
      41dc42af
    • Matthias Braun's avatar
      custom stack bias code for sparc · 8f4eae8e
      Matthias Braun authored
      8f4eae8e
    • Matthias Braun's avatar
      13506453
  21. 12 Aug, 2011 1 commit