1. 10 Sep, 2015 3 commits
  2. 09 Sep, 2015 1 commit
    • Christoph Mallon's avatar
      be: Wire stack nodes after code selection. · bed91301
      Christoph Mallon authored
      This resolves problems with hidden dependencies during code selection, which cause dependency cycles and therefore fixes backend/scheduled.c.
      Also it grants the code selection slightly more freedom by not arbitrarily restricting the order by stack dependencies.
      bed91301
  3. 08 Sep, 2015 1 commit
  4. 07 Sep, 2015 1 commit
  5. 20 Aug, 2015 2 commits
  6. 19 Aug, 2015 2 commits
  7. 14 Aug, 2015 1 commit
    • Andreas Fried's avatar
      Implement vararg handling in a more portable way (for now only for IA32). · f833aa25
      Andreas Fried authored
      This adds two builtin kinds, ir_bk_va_start and ir_bk_va_arg. va_arg Builtins
      are lowered in the lower_builtins pass with a function provided by the backend,
      whereby most architectures can use be_default_lower_va_args. va_start Builtins
      are lowered in the backend.
      
      Note: This commit breaks all backends except for IA32. SPARC and AMD64 are
      implemented in later commits. The ARM backend previously miscompiled variadic
      functions, and will now throw a proper error.
      f833aa25
  8. 09 Aug, 2015 1 commit
    • Christoph Mallon's avatar
      be: Reintroduce be_Start. · 36de1849
      Christoph Mallon authored
      All backends have similar empty Start nodes, which just provide registers.
      So having one generic backend Start node to share some infrastructure is sensible.
      36de1849
  9. 07 Aug, 2015 1 commit
  10. 05 Aug, 2015 1 commit
  11. 04 Aug, 2015 5 commits
  12. 02 Aug, 2015 1 commit
    • Christoph Mallon's avatar
      arm, be, ia32, sparc: Do not go on with peephole optimization of IncSP, when... · 89688f61
      Christoph Mallon authored
      arm, be, ia32, sparc: Do not go on with peephole optimization of IncSP, when be_peephole_IncSP_IncSP() succeeded.
      
      The current IncSP was removed in this case and we now would operate on its predecessor IncSP.
      This is wrong, e.g. when asking for currently free registers.
      This corrects backend/incsp_pop.c, which was broken on ia32.
      It was wrongly assumed that a certain register was free and could be used to turn an IncSP into a Pop.
      89688f61
  13. 31 Jul, 2015 2 commits
  14. 29 Jul, 2015 1 commit
  15. 28 Jul, 2015 2 commits
  16. 27 Jul, 2015 2 commits
  17. 23 Jul, 2015 1 commit
    • Matthias Braun's avatar
      arm: Remove CopyB node · bd66289b
      Matthias Braun authored
      We use lower_CopyB anyway so there are no copybs left when lowering.
      They are all lowered to load/store sequences or memcpy calls.
      bd66289b
  18. 22 Jul, 2015 3 commits
  19. 21 Jul, 2015 3 commits
  20. 20 Jul, 2015 1 commit
  21. 19 Jul, 2015 1 commit
  22. 08 Jul, 2015 2 commits
  23. 01 Jul, 2015 2 commits