Skip to content
  • Simon Peyton Jones's avatar
    Make sum and product INLINABLE · f251bf58
    Simon Peyton Jones authored
    This was causing the bad behaviour in Trac #7507,
    because 'sum' wasn't getting specialised to Int64.
    
    It also deals with Trac #4321, which had the same cause.
    
    This has a big effect on some nofib programs too:
    
    --------------------------------------------------------------------------------
            Program           Allocs   Runtime   Elapsed  TotalMem
    ------------------------------------------------------------------------
         bernouilli            -2.6%     -2.0%     -2.0%     +0.0%
               fft2           -23.8%      0.09      0.09    -16.7%
              fluid            -4.4%      0.01      0.01     +0.0%
             hidden            -3.2%     +2.1%     +1.8%     +0.0%
          integrate           -38.0%    -47.7%    -47.7%     -1.0%
               x2n1           -30.2%      0.01      0.01    -50.0%
    ------------------------------------------------------------------------
                Min           -38.0%    -47.7%    -47.7%    -50.0%
                Max            +0.4%    +11.2%    +11.8%     +6.9%
     Geometric Mean            -1.3%     +0.2%     +0.2%     -0.8%
    f251bf58