Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : master
http://hackage.haskell.org/trac/ghc/changeset/0b0a41f96cbdaf52aac171c9c58459e3187b0f46 >--------------------------------------------------------------- commit 0b0a41f96cbdaf52aac171c9c58459e3187b0f46 Author: Simon Marlow <[email protected]> Date: Thu Sep 20 13:54:49 2012 +0100 Teach the linear register allocator how to allocate more stack if necessary This squashes the "out of spill slots" panic that occasionally happens on x86, by adding instructions to bump and retreat the C stack pointer as necessary. The panic has become more common since the new codegen, because we lump code into larger blocks, and the register allocator isn't very good at reusing stack slots for spilling (see Note [extra spill slots]). compiler/nativeGen/AsmCodeGen.lhs | 70 ++++++++++---- compiler/nativeGen/Instruction.hs | 13 +++ compiler/nativeGen/PPC/Instr.hs | 2 + compiler/nativeGen/RegAlloc/Linear/Main.hs | 25 ++++- compiler/nativeGen/RegAlloc/Linear/StackMap.hs | 36 +++----- compiler/nativeGen/SPARC/Instr.hs | 2 + compiler/nativeGen/X86/Instr.hs | 117 ++++++++++++++++++------ compiler/nativeGen/X86/Regs.hs | 6 +- 8 files changed, 189 insertions(+), 82 deletions(-) Diff suppressed because of size. To see it, use: git show 0b0a41f96cbdaf52aac171c9c58459e3187b0f46 _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
