1. 04 Apr, 2016 1 commit
    • Matthias Braun's avatar
      be: Rewrite stack frame handling · b6787e36
      Matthias Braun authored
      This is a bigger rewrite of stack frame handling in the backend:
      
      - Do the stack frame type layout late, after all the spill slots have
        been created. This way we can avoid (and remove) the brittle
        frame_alloc_area().
      - Standardize the meaning of stack entity offsets. After stack frame type
        layout they are relative to the stack pointer position at the beginning
        of the function.  It is all in one type now, no splitting into "arg",
        "between" and "stack_frame" type anymore.
      - Generalize the stack pointer simulation code to work with a single
        callback. Represent stack state as current offset and align_padding
        number. Now that callbacks can access and modify them both we do not
        need custom code in the sparc backend anymore.
      - Remove alignment specification on IncSP, only keep a ignore_align flag
        used for the last IncSP that has to remove all existing sp adjustments
        and may end up on a misaligned SP on ia32/amd64.
      - Align stack by default on ia32+amd64 backends.
      b6787e36
  2. 15 Feb, 2016 1 commit
  3. 14 Feb, 2016 1 commit
  4. 30 Jan, 2016 1 commit
  5. 21 Dec, 2015 1 commit
  6. 14 Dec, 2015 3 commits
  7. 08 Dec, 2015 1 commit
  8. 07 Dec, 2015 2 commits
  9. 06 Dec, 2015 1 commit
  10. 06 Oct, 2015 1 commit
    • Matthias Braun's avatar
      Introduce IR_LINKAGE_NO_IDENTITY · 5fc82d98
      Matthias Braun authored
      This flag can be set on entities where the actual address isn't
      known/compared against other address. This also fixes a bug where we
      used the mach-o csrings section for global char arrays which need
      distinct addresses.
      5fc82d98
  11. 05 Oct, 2015 1 commit
  12. 14 Sep, 2015 1 commit
  13. 07 Sep, 2015 1 commit
  14. 04 Sep, 2015 2 commits
  15. 04 Aug, 2015 1 commit
  16. 26 May, 2015 1 commit
  17. 30 Nov, 2014 1 commit
  18. 25 Nov, 2014 1 commit
  19. 31 Oct, 2014 2 commits
  20. 19 Oct, 2014 1 commit
  21. 30 Sep, 2014 1 commit
  22. 19 Sep, 2014 1 commit
  23. 15 Apr, 2014 1 commit
    • Matthias Braun's avatar
      split Sel node into Member and Sel · 36408645
      Matthias Braun authored
      - Compound type selection is performed with Member
      - Array indexing is performed with Sel
      - Instead of the simpleSel constructor functions you can use the normal Member
        constructors now
      - The concept of array element entities has been removed, Sel nodes just
        contain a pointer to the array type now.
      36408645
  24. 31 Mar, 2014 2 commits
  25. 14 Mar, 2014 1 commit
  26. 07 Mar, 2014 1 commit
  27. 14 Feb, 2014 1 commit
  28. 06 Feb, 2014 1 commit
  29. 28 Jan, 2014 1 commit
  30. 27 Jan, 2014 2 commits
  31. 31 Oct, 2013 2 commits
    • Matthias Braun's avatar
      further cleanup in get/set_entity_irg/additional_properties · b2409eda
      Matthias Braun authored
      - Only allow get_entity_irg()/set_entity_irg() for method entities now.
      - Allow setting/getting of additional properties for method and alias
        entities.
      - Add some missing is_method_entity() checks in cgana.
      b2409eda
    • Matthias Braun's avatar
      fix corner cases when determining called entities/irgs · c9f09085
      Matthias Braun authored
      Most firm analyses behaved incorrectlye when: A called SymConst did not
      have a method entity, assumed the code reachable by get_entity_irg is
      the code called. These assumptions are wrong when doing crazy casts in C
      or when dealing with weak symbols. This is fixed by introducing some
      convenience functions: get_Call_callee(), get_entity_linktime_irg()
      c9f09085
  32. 22 Aug, 2013 1 commit