1. 26 Apr, 2012 1 commit
    • Matthias Braun's avatar
      dwarf: initial support for callframe and params · cc9d3be2
      Matthias Braun authored
      - We now always output dwarf3 so we can use DW_OP_call_frame_cfa and avoid
        construction location lists, but just reuse the callframe info lists.
      - Backends have to emit debug info as callframe calculation changes:
        The ia32 backend has a preliminary implementation which assumes esp
        offset of frame_type_size at the beginning of a block (currently
        always true), the no-omit-fp mode assumes ebp relative addressing
        (which is correct except for the prolog/epilogue insns)
      cc9d3be2
  2. 06 Mar, 2012 1 commit
  3. 15 Dec, 2011 1 commit
    • Matthias Braun's avatar
      make unique types/entities part of irprog · 274626e2
      Matthias Braun authored
      unknown_type, code_type, none_type, unknown_entity reference are hold in
      the irprog now. This makes handling more consistent since now all types
      and entities are equally part of irprog.
      274626e2
  4. 14 Nov, 2011 1 commit
  5. 10 Nov, 2011 1 commit
  6. 20 Oct, 2011 1 commit
  7. 13 Sep, 2011 1 commit
    • Matthias Braun's avatar
      beabi: no special treatment of returns_twice · f4bc6e99
      Matthias Braun authored
      returns_twice handling was broken in the ia32-backend (the only real
      beabi user) for a long time now. Just noone noticed because our
      frontends lacked the special treatment to set the flag correctly.
      Turned out setjmp/longjmp on ia32 save/restore the registers anyway
      so not doing anything is fine here.
      f4bc6e99
  8. 06 Sep, 2011 1 commit
  9. 22 Aug, 2011 1 commit
  10. 17 Aug, 2011 3 commits
  11. 15 Aug, 2011 1 commit
    • 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
  12. 05 Aug, 2011 2 commits
  13. 04 Aug, 2011 2 commits
  14. 08 Jun, 2011 1 commit
    • Michael Beck's avatar
      Removed the callee/caller saved flag from register specification. · ad8c4178
      Michael Beck authored
      The callee/caller saved information is not constant accross different
      ABI's, so don't make it constant. Instead, all BE that still use beabi
      provide a callback now.
      This allows to implement support for x64_64/Win32 and is a necessary step
      for the combined x86 BE.
      ad8c4178
  15. 01 Jun, 2011 1 commit
  16. 27 May, 2011 1 commit
  17. 25 May, 2011 1 commit
    • Andreas Zwinkau's avatar
      Remove equivalent_node_Block · d3dcbe1c
      Andreas Zwinkau authored
      Fixes opt/localopts2
      
      Because of Phis blocks cannot be equivalent. The cfopt must do all
      block merging.
      
      For example, consider the case where block A has one predecessor
      block B, which contains a Jmp. Naively, we might exchange(A,B).
      However, A might contain a Phi with one operand, then the graph
      is broken afterwards, since we move the Phi into B as well.
      d3dcbe1c
  18. 06 May, 2011 2 commits
  19. 15 Apr, 2011 1 commit
  20. 13 Apr, 2011 4 commits
  21. 08 Apr, 2011 5 commits
  22. 16 Mar, 2011 1 commit
  23. 04 Mar, 2011 2 commits
  24. 22 Feb, 2011 1 commit
    • Andreas Zwinkau's avatar
      Fix beabi call sorting · 5da257fd
      Andreas Zwinkau authored
      Difference of idx for Calls with no order relation is stable,
      but may lead to circular dependencies. Fixed by looking at
      the heights first.
      
      Fixes backend/transform_loop.c (with -O0)
      
      [r28436]
      5da257fd
  25. 09 Feb, 2011 1 commit
  26. 08 Feb, 2011 1 commit
  27. 25 Jan, 2011 1 commit