[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