[commit: ghc] master: PPC NCG: Use liveness information in CmmCall (83e09d3)

git at git.haskell.org git at git.haskell.org
Fri Mar 15 19:06:46 UTC 2019


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/83e09d3c2b2e84b85fa25e271eff2747fc783f09/ghc

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

commit 83e09d3c2b2e84b85fa25e271eff2747fc783f09
Author: Peter Trommler <ptrommler at acm.org>
Date:   Tue Dec 11 16:43:49 2018 +0100

    PPC NCG: Use liveness information in CmmCall
    
    We make liveness information for global registers
    available on `JMP` and `BCTR`, which were the last instructions
    missing. With complete liveness information we do not need to
    reserve global registers in `freeReg` anymore. Moreover we
    assign R9 and R10 to callee saves registers.
    
    Cleanup by removing `Reg_Su`, which was unused, from `freeReg`
    and removing unused register definitions.
    
    The calculation of the number of floating point registers is too
    conservative. Just follow X86 and specify the constants directly.
    
    Overall on PowerPC this results in 0.3 % smaller code size in nofib
    while runtime is slightly better in some tests.


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

83e09d3c2b2e84b85fa25e271eff2747fc783f09
 compiler/nativeGen/PPC/CodeGen.hs | 40 +++++++++++++---------
 compiler/nativeGen/PPC/Instr.hs   | 35 +++++++++++--------
 compiler/nativeGen/PPC/Ppr.hs     |  4 +--
 compiler/nativeGen/PPC/Regs.hs    | 12 +++----
 includes/CodeGen.Platform.hs      | 72 ---------------------------------------
 includes/stg/MachRegs.h           | 13 ++++---
 6 files changed, 57 insertions(+), 119 deletions(-)

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

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc 83e09d3c2b2e84b85fa25e271eff2747fc783f09


More information about the ghc-commits mailing list