cvs commit: fptools/ghc/compiler/codeGen CgCallConv.hs CgStackery.lhs CgUtils.hs fptools/ghc/compiler/ghci ByteCodeGen.lhs fptools/ghc/compiler/iface MkIface.lhs fptools/ghc/compiler/main ErrUtils.lhs fptools/ghc/compiler/rename RnNames.lhs ...

Simon Peyton Jones simonpj at haskell.org
Tue Aug 17 11:24:15 EDT 2004


simonpj     2004/08/17 08:24:14 PDT

  Modified files:
    ghc/compiler/codeGen CgCallConv.hs CgStackery.lhs CgUtils.hs 
    ghc/compiler/ghci    ByteCodeGen.lhs 
    ghc/compiler/iface   MkIface.lhs 
    ghc/compiler/main    ErrUtils.lhs 
    ghc/compiler/rename  RnNames.lhs 
    ghc/compiler/simplCore SetLevels.lhs 
    ghc/compiler/simplStg SRT.lhs 
    ghc/compiler/specialise Rules.lhs 
    ghc/compiler/typecheck TcDeriv.lhs TcRnDriver.lhs 
    ghc/compiler/utils   Digraph.lhs ListSetOps.lhs Util.lhs 
  Log:
  	-------------------------------
  	Use merge-sort not quicksort
  	Nuke quicksort altogether
  	-------------------------------
  
  Quicksort has O(n**2) behaviour worst case, and this occasionally bites.
  In particular, when compiling large files consisting only of static data,
  we get loads of top-level delarations -- and that led to more than half the
  total compile time being spent in the strongly connected component analysis
  for the occurrence analyser.  Switching to merge sort completely solved the
  problem.
  
  I've nuked quicksort altogether to make sure this does not happen again.
  
  Revision  Changes    Path
  1.3       +2 -2      fptools/ghc/compiler/codeGen/CgCallConv.hs
  1.26      +3 -3      fptools/ghc/compiler/codeGen/CgStackery.lhs
  1.3       +5 -5      fptools/ghc/compiler/codeGen/CgUtils.hs
  1.103     +1 -1      fptools/ghc/compiler/ghci/ByteCodeGen.lhs
  1.15      +7 -7      fptools/ghc/compiler/iface/MkIface.lhs
  1.48      +6 -3      fptools/ghc/compiler/main/ErrUtils.lhs
  1.170     +6 -3      fptools/ghc/compiler/rename/RnNames.lhs
  1.60      +4 -4      fptools/ghc/compiler/simplCore/SetLevels.lhs
  1.19      +2 -2      fptools/ghc/compiler/simplStg/SRT.lhs
  1.40      +3 -3      fptools/ghc/compiler/specialise/Rules.lhs
  1.134     +2 -2      fptools/ghc/compiler/typecheck/TcDeriv.lhs
  1.77      +3 -3      fptools/ghc/compiler/typecheck/TcRnDriver.lhs
  1.19      +7 -5      fptools/ghc/compiler/utils/Digraph.lhs
  1.12      +3 -3      fptools/ghc/compiler/utils/ListSetOps.lhs
  1.68      +3 -122    fptools/ghc/compiler/utils/Util.lhs


More information about the Cvs-ghc mailing list