[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