[commit: ghc] master: Allow the register allocator access to argument regs (R1.., F1.., etc.) (f857f07)

Simon Marlow marlowsd at gmail.com
Fri Jul 6 17:50:24 CEST 2012


Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/f857f0741515b9ebf186beb38fe64448de355817

>---------------------------------------------------------------

commit f857f0741515b9ebf186beb38fe64448de355817
Author: Simon Marlow <marlowsd at gmail.com>
Date:   Fri Jul 6 13:32:22 2012 +0100

    Allow the register allocator access to argument regs (R1.., F1.., etc.)
    
    This was made possible by the recent change to codeGen to attach the
    live GlobalRegs to every CmmJump, and we'll be relying on it quite
    heavily in the new code generator too.
    
    What this means essentially is that when we see
    
      x = R1
    
    the register allocator will automatically assign x to R1 and generate
    no code at all (also known as "coalescing"). It wasn't possible before
    because the register allocator had to assume that R1 was always live,
    because it didn't have access to accurate liveness information.

 compiler/cmm/CmmCallConv.hs                |   26 +++++++----
 compiler/nativeGen/RegAlloc/Linear/Main.hs |   23 ++++++---
 compiler/nativeGen/X86/CodeGen.hs          |   26 ++++++----
 compiler/nativeGen/X86/Instr.hs            |   14 +++---
 compiler/nativeGen/X86/Ppr.hs              |    6 +-
 compiler/nativeGen/X86/Regs.hs             |   73 ++++++++--------------------
 6 files changed, 78 insertions(+), 90 deletions(-)


Diff suppressed because of size. To see it, use:

    git show f857f0741515b9ebf186beb38fe64448de355817



More information about the Cvs-ghc mailing list