1. 19 Jun, 2015 3 commits
  2. 24 May, 2015 2 commits
    • Matthias Braun's avatar
      be: Move main backend loop into backends. · 3e79d08e
      Matthias Braun authored
      Instead of having a generaic main loop in be_main with several callbacks
      into the targets, split the code in be_main up into a set of convenience
      functions and let the targets implement the main loop itself. This is
      nicer because:
      
      - The control flow into and out of the functions in the target becomes
        obvious as no external party is using callbacks anymore.
      - Targets can insert custom code at any place between the generic
        passes.
      - In the future we can parameterize the generic backend passes directly
        instead of stuffing info into generic isa_if structures.
      3e79d08e
    • Matthias Braun's avatar
      be: Some cleanups · 23f78db8
      Matthias Braun authored
      23f78db8
  3. 07 May, 2015 1 commit
    • Matthias Braun's avatar
      Rework setting some OS details · 3d6ab117
      Matthias Braun authored
      The idea here, is that you do not simply set a target operating system
      or architecture, but have a setting for all things different between the
      operating systems. Knowledge about the name and habits of the operating
      system is left to the frontend.
      (We may want to provide a small support library in the future to share
      the triple parsing and OS -> settings code between multiple frontends).
      3d6ab117
  4. 18 Jan, 2015 5 commits
  5. 17 Jan, 2015 1 commit
  6. 11 Jan, 2015 1 commit
  7. 01 Jan, 2015 1 commit
  8. 31 Dec, 2014 2 commits
  9. 30 Dec, 2014 1 commit
    • Christoph Mallon's avatar
      amd64, ia32: Remove CopyKeep from function prologue. · 573e6cf8
      Christoph Mallon authored
      These are remnants from back when the prologue was added early and scheduling was not done, yet.
      They were there to help the scheduler not to move an IncSP before the copy from sp to bp and thus having two values in sp live at the same time.
      573e6cf8
  10. 29 Dec, 2014 4 commits
  11. 26 Dec, 2014 3 commits
  12. 25 Dec, 2014 2 commits
  13. 08 Dec, 2014 1 commit
  14. 25 Nov, 2014 1 commit
  15. 22 Nov, 2014 1 commit
  16. 19 Nov, 2014 1 commit
  17. 17 Nov, 2014 1 commit
  18. 16 Nov, 2014 1 commit
  19. 15 Nov, 2014 4 commits
    • Christoph Mallon's avatar
      ia32: Do not accidently lose the stack frame. · 123e854f
      Christoph Mallon authored
      Consider a function with frame pointer relative addressing, where the only users of the stack are the Returns.
      Still space for values might be allocated on the stack.
      To prevent this, during prologue construction the IncSP was kept, if it had at most one user.
      If there are multiple returns, then there was more than one user, so the IncSP is not kept.
      Then during epilogue construction these uses are replaced by movl %ebp, %esp/leave.
      This renders the allocation of the frame unused and it vanishes.
      So memory below the stack pointer is accessed.
      
      Now first construct the epilogues.
      Then, when the prologue is constructed afterwards, we know whether the IncSP is unused and needs to be kept.
      
      Still this is a hack.
      The correct solution would be, that IncSP produces memory, so memory operations accessing stack slots use this memory.
      123e854f
    • Christoph Mallon's avatar
      ia32: Give Leave a memory input and output. · d69e161d
      Christoph Mallon authored
      It pops a value from the stack, so this memory access should be represented in the graph.
      d69e161d
    • Christoph Mallon's avatar
      ia32: Cleanup in introduce_epilogue(). · 0a1efcc2
      Christoph Mallon authored
      0a1efcc2
    • Christoph Mallon's avatar
  20. 13 Nov, 2014 4 commits