simonmar    2005/08/03 06:53:37 PDT

  Modified files:
    ghc/compiler/basicTypes BasicTypes.lhs IdInfo.lhs 
    ghc/compiler/coreSyn CoreUnfold.lhs CoreUtils.lhs 
    ghc/compiler/simplCore OccurAnal.lhs SimplUtils.lhs 
                           Simplify.lhs 
  Log:
  Patch from SimonPJ (slightly tweaked by me after checking performance
  results):
  
  Fix occasional O(n^2) behaviour in the simplifier.  There was a
  possibility that by inlining a binding, we could re-simplify an
  arbitrary sized expression.  This patch fixes it by moving the
  inlining of arbitrary-sized expressiong to the binding site
  (preInlineUnconditionally), so the decision to inline happens before
  simplifying the RHS.  To do this, we have to collect more information
  during the occurrence analysis phase.
  
  We still make inlining decisions at the call site, but they are always
  size-limited, so we can't get quadratic blowup.
  
  Revision  Changes    Path
  1.38      +25 -12    fptools/ghc/compiler/basicTypes/BasicTypes.lhs
  1.121     +4 -4      fptools/ghc/compiler/basicTypes/IdInfo.lhs
  1.101     +28 -49    fptools/ghc/compiler/coreSyn/CoreUnfold.lhs
  1.136     +5 -1      fptools/ghc/compiler/coreSyn/CoreUtils.lhs
  1.78      +23 -26    fptools/ghc/compiler/simplCore/OccurAnal.lhs
  1.100     +66 -48    fptools/ghc/compiler/simplCore/SimplUtils.lhs
  1.160     +19 -8     fptools/ghc/compiler/simplCore/Simplify.lhs
_______________________________________________
Cvs-ghc mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to