all.T 28.9 KB
Newer Older
1
def no_lint(name, opts):
2
   opts.compiler_always_flags = \
3
       [opt for opt in opts.compiler_always_flags if opt != '-dcore-lint' and opt != '-dcmm-lint']
4

Simon Marlow's avatar
Simon Marlow committed
5
setTestOpts(no_lint)
6 7


Simon Marlow's avatar
Simon Marlow committed
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
# Note [residency]
#
# Residency (peak_megabytes_allocated and max_bytes_used) is sensitive
# to when the major GC runs, which makes it inherently inaccurate.
# Sometime an innocuous change somewhere can shift things around such
# that the samples occur at a different time, and the residency
# appears to change (up or down) when the underlying profile hasn't
# really changed.
#
# However, please don't just ignore changes in residency.  If you see
# a change in one of these figures, please check whether it is real or
# not as follows:
#
#  * Run the test with old and new compilers, adding +RTS -h -i0.01
#    (you don't need to compile anything for profiling or enable profiling
#    libraries to get a heap profile).
#  * view the heap profiles, read off the maximum residency.  If it has
#    really changed, then you know there's an issue.

Simon Marlow's avatar
Simon Marlow committed
27
test('T1969',
Simon Marlow's avatar
Simon Marlow committed
28
     [compiler_stats_num_field('peak_megabytes_allocated', # Note [residency]
29
          [(wordsize(32), 17, 15),
30 31 32 33 34
             # 2010-05-17 14 (x86/Windows)
             #            15 (x86/OS X)
             #            19 (x86/OS X)
             # 2013-02-10 13 (x86/Windows)
             # 2013-02-10 14 (x86/OSX)
35
             # 2013-11-13 17 (x86/Windows, 64bit machine)
36
           (wordsize(64), 30, 20)]),
37 38 39 40
             #            28 (amd64/Linux)
             #            34 (amd64/Linux)
             # 2012-09-20 23 (amd64/Linux)
             # 2012-10-03 25 (amd64/Linux if .hi exists)
41
             # 2013-02-13 23, but unstable so increased to 10% range
Simon Peyton Jones's avatar
Simon Peyton Jones committed
42
             # 2013-02-13 27, very unstable!
Joachim Breitner's avatar
Joachim Breitner committed
43
             # 2014-09-10 29 (amd64/Linux) post-AMP-cleanup
44 45
             # 2013-09-11 30, 10 (amd64/Linux)
             # 2013-09-11 30, 15 (adapt to Phab CI)
46
      compiler_stats_num_field('max_bytes_used',
47
          [(platform('i386-unknown-mingw32'), 5719436, 20),
48 49
                                 # 2010-05-17 5717704 (x86/Windows)
                                 # 2013-02-10 5159748 (x86/Windows)
50
                                 # 2013-02-10 5030080 (x86/Windows)
51
                                 # 2013-11-13 7295012 (x86/Windows, 64bit machine)
52
                                 # 2014-04-24 5719436 (x86/Windows, 64bit machine)
53
           (wordsize(32), 5949188, 1),
54 55
             #            6707308 (x86/OS X)
             # 2009-12-31 6149572 (x86/Linux)
Austin Seipp's avatar
Austin Seipp committed
56
             # 2014-01-22 6429864 (x86/Linux)
57
             # 2014-06-29 5949188 (x86/Linux)
58
           (wordsize(64), 10000000, 15)]),
Joachim Breitner's avatar
Joachim Breitner committed
59
             # 2014-09-10 10463640, 10  # post-AMP-update (somewhat stabelish)
Austin Seipp's avatar
Austin Seipp committed
60
               # looks like the peak is around ~10M, but we're
61 62 63
               # unlikely to GC exactly on the peak.
               # varies quite a lot with CLEANUP and BINDIST,
               # hence 10% range.
Simon Marlow's avatar
Simon Marlow committed
64
               # See Note [residency] to get an accurate view.
65 66
             # 2014-09-14  9684256, 10 # try to lower it a bit more to match Phab's CI
             # 2014-11-03 10584344,    # ghcspeed reports higher numbers consistently
67
      compiler_stats_num_field('bytes allocated',
68
          [(platform('i386-unknown-mingw32'), 301784492, 5),
69 70
                                 #            215582916 (x86/Windows)
                                 # 2012-10-29 298921816 (x86/Windows)
71
                                 # 2013-02-10 310633884 (x86/Windows)
72
                                 # 2013-11-13 317975916 (x86/Windows, 64bit machine)
73
                                 # 2014-04-04 301784492 (x86/Windows, 64bit machine)
74
           (wordsize(32), 303300692, 1),
75 76 77 78
             #            221667908 (x86/OS X)
             #            274932264 (x86/Linux)
             # 2012-10-08 303930948 (x86/Linux, new codegen)
             # 2013-02-10 322937684 (x86/OSX)
Austin Seipp's avatar
Austin Seipp committed
79
             # 2014-01-22 316103268 (x86/Linux)
80
             # 2014-06-29 303300692 (x86/Linux)
Joachim Breitner's avatar
Joachim Breitner committed
81
           (wordsize(64), 630299456, 5)]),
82 83 84 85 86 87 88
             # 17/11/2009 434845560 (amd64/Linux)
             # 08/12/2009 459776680 (amd64/Linux)
             # 17/05/2010 519377728 (amd64/Linux)
             # 05/08/2011 561382568 (amd64/OS X)
             # 16/07/2012 589168872 (amd64/Linux)
             # 20/07/2012 595936240 (amd64/Linux)
             # 23/08/2012 606230880 (amd64/Linux)
89
             # 29/08/2012 633334184 (amd64/Linux) new codegen
90
             # 18/09/2012 641959976 (amd64/Linux)
91 92 93 94 95
             # 19/10/2012 661832592 (amd64/Linux) -fPIC turned on
             # 23/10/2012 642594312 (amd64/Linux) -fPIC turned off again
             # 12/11/2012 658786936 (amd64/Linux) UNKNOWN REASON
             # 17/1/13:   667160192 (x86_64/Linux) new demand analyser
             # 18/10/2013 698612512 (x86_64/Linux) fix for #8456
Gabor Greif's avatar
Gabor Greif committed
96
             # 10/02/2014 660922376 (x86_64/Linux) call arity analysis
97
             # 17/07/2014 651626680 (x86_64/Linux) roundabout update
Joachim Breitner's avatar
Joachim Breitner committed
98
             # 10/09/2014 630299456 (x86_64/Linux) post-AMP-cleanup
99
      only_ways(['normal']),
100

101
      extra_hc_opts('-dcore-lint -static')
102 103
          # Leave -dcore-lint on for this one test, so that we have something
          # that will catch a regression in -dcore-lint performance.
Simon Marlow's avatar
Simon Marlow committed
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
      ],
     compile,
     [''])

# This one tests for the space leak in the native code generator,
# where it holds onto the entire asm output until the end.  The space
# leak reappears from time to time, so it's a good idea to have a test
# for it.  The residency of this test will jump by 10MB to 40MB or so
# on x86-64 if the space leak appears.

# Only run this one if we have an NCG:
if 'optasm' in config.compile_ways:
   conf_3294 = only_ways(['normal'])
else:
   conf_3294 = skip

test('T3294',
121
     [
Simon Marlow's avatar
Simon Marlow committed
122
      compiler_stats_num_field('max_bytes_used', # Note [residency]
123
          [(wordsize(32), 26525384, 15),
124 125 126 127
             #            17725476 (x86/OS X)
             #            14593500 (Windows)
             # 2013-02-10 20651576 (x86/Windows)
             # 2013-02-10 20772984 (x86/OSX)
128
             # 2013-11-13 24009436 (x86/Windows, 64bit machine)
129
             # 2014-04-24 19882188 (x86/Windows, 64bit machine)
130 131
             # 2014-12-22 26525384 (x86/Windows) Increase due to silent superclasses?

132
           (wordsize(64), 40000000, 15)]),
133 134 135 136 137 138 139 140 141
             # prev:           25753192 (amd64/Linux)
             # 29/08/2012:     37724352 (amd64/Linux)
             #  (increase due to new codegen, see #7198)
             # 13/13/2012:     44894544 (amd64/Linux)
             #  (reason for increase unknown)
             # 15/5/2013:      36904752  (amd64/Linux)
             #  (reason for decrease unknown)
             # 29/5/2013:      43224080  (amd64/Linux)
             #  (reason for increase back to earlier value unknown)
142 143
             # 2014-07-14:     36670800  (amd64/Linux)
             #  (reason unknown, setting expected value somewhere in between)
144

145
      compiler_stats_num_field('bytes allocated',
146
          [(wordsize(32), 1377050640, 5),
147 148 149
           # previous:     815479800  (x86/Linux)
           # (^ increase due to new codegen, see #7198)
           # 2012-10-08:  1373514844 (x86/Linux)
Austin Seipp's avatar
Austin Seipp committed
150 151
           # 2013-11-13: 1478325844  (x86/Windows, 64bit machine)
           # 2014-01-12: 1565185140  (x86/Linux)
152
           # 2013-04-04: 1377050640  (x86/Windows, 64bit machine)
Joachim Breitner's avatar
Joachim Breitner committed
153
           (wordsize(64), 2709595808, 5)]),
154 155 156 157
            # old:        1357587088 (amd64/Linux)
            # 29/08/2012: 2961778696 (amd64/Linux)
            # (^ increase due to new codegen, see #7198)
            # 18/09/2012: 2717327208 (amd64/Linux)
158 159 160
            # 08/06/2013: 2901451552 (amd64/Linux) (reason unknown)
            # 12/12/2013: 3083825616 (amd64/Linux) (reason unknown)
            # 18/02/2014: 2897630040 (amd64/Linux) (call arity improvements)
161
            # 12/03/2014: 2705289664 (amd64/Linux) (more call arity improvements)
162
            # 2014-17-07: 2671595512 (amd64/Linux) (round-about update)
Joachim Breitner's avatar
Joachim Breitner committed
163
            # 2014-09-10: 2709595808 (amd64/Linux) post-AMP cleanup
Simon Marlow's avatar
Simon Marlow committed
164 165 166 167
      conf_3294
      ],
     compile,
     [''])
Ian Lynagh's avatar
Ian Lynagh committed
168

Simon Peyton Jones's avatar
Simon Peyton Jones committed
169
test('T4801',
170 171
     [ # expect_broken(5224),
       # temporarily unbroken (#5227)
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189
###################################
# deactivated for now, as this metric became too volatile recently
#      compiler_stats_num_field('peak_megabytes_allocated',# Note [residency]
#          [(platform('x86_64-apple-darwin'), 70, 1),
#                           # expected value: 58 (amd64/OS X)
#                           # 13/01/2014 - 70
#           (wordsize(32), 30, 20),
#           (wordsize(64), 48, 20)]),
#            # prev:       50 (amd64/Linux)
#            # 19/10/2012: 64 (amd64/Linux)
#            #                (^ REASON UNKNOWN!)
#            # 12/11/2012: 49 (amd64/Linux)
#            #                (^ REASON UNKNOWN!)
#            # 28/8/13:    60 (amd64/Linux)
#            #                (^ REASON UNKNOWN!)
#            # 2014-09-10: 55 post-AMP-cleanup
#            # 2014-10-08: 62 (jumps between 55 and 71 observed -- GC tipping point?)
#            # 2014-10-13: 48 stricter seqDmdType
Simon Marlow's avatar
Simon Marlow committed
190

191
      compiler_stats_num_field('bytes allocated',
Austin Seipp's avatar
Austin Seipp committed
192
          [(platform('x86_64-apple-darwin'), 464872776, 5),
193
                           # expected value: 510938976 (amd64/OS X):
Simon Marlow's avatar
Simon Marlow committed
194

195
           (wordsize(32), 203962148, 10),
Austin Seipp's avatar
Austin Seipp committed
196 197
           # prev:        185669232 (x86/OSX)
           # 2014-01-22:  211198056 (x86/Linux)
198
           # 2014-09-03:  185242032 (Windows laptop)
199
           # 2014-12-01:  203962148 (Windows laptop)
Joachim Breitner's avatar
Joachim Breitner committed
200
           (wordsize(64), 382056344, 10)]),
201 202 203
            # prev:       360243576 (amd64/Linux)
            # 19/10/2012: 447190832 (amd64/Linux) (-fPIC turned on)
            # 19/10/2012: 392409984 (amd64/Linux) (-fPIC turned off)
Joachim Breitner's avatar
Joachim Breitner committed
204
            # 2014-04-08: 362939272 (amd64/Linux) cumulation of various smaller improvements over recent commits
Joachim Breitner's avatar
Joachim Breitner committed
205
            # 2014-10-08: 382056344 (amd64/Linux) stricter foldr2 488e95b
Simon Marlow's avatar
Simon Marlow committed
206

207
###################################
208
# deactivated for now, as this metric became too volatile recently
209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230
#
#     compiler_stats_num_field('max_bytes_used',
#         [(platform('x86_64-apple-darwin'), 25145320, 5),
#          (wordsize(32), 11829000, 15),
#            #              9651948 (x86/OSX)
#            #              10290952 (windows)
#            # 2013-02-10   11071060 (x86/Windows)
#            # 2013-02-10:  11207828 (x86/OSX)
#            # (some date): 11139444
#            # 2013-11-13:  11829000 (x86/Windows, 64bit machine)
#          (wordsize(64), 19296544, 15)]),
#               # prev:       20486256 (amd64/OS X)
#               # 30/08/2012: 17305600--20391920 (varies a lot)
#               # 19/10/2012: 26882576 (-fPIC turned on)
#               # 19/10/2012: 18619912 (-fPIC turned off)
#               # 24/12/2012: 21657520 (perhaps gc sampling time wibbles?)
#               # 10/01/2014: 25166280
#               # 13/01/2014: 22646000 (mostly due to #8647)
#               # 18/02/2014: 25002136 (call arity analysis changes)
#               # 12/05/2014: 25002136 (specialisation and inlining changes)
#               # 10/09/2014: 19296544, 10 (post-AMP-cleanup)
#               # 14/09/2014: 19585456, 15 (adapt to Phab CI env)
231 232
       only_ways(['normal']),
       extra_hc_opts('-static')
Simon Peyton Jones's avatar
Simon Peyton Jones committed
233 234 235 236
      ],
     compile,
     [''])

Ian Lynagh's avatar
Ian Lynagh committed
237
test('T3064',
238
     [# expect_broken( 3064 ),
Simon Marlow's avatar
Simon Marlow committed
239
      compiler_stats_num_field('peak_megabytes_allocated',# Note [residency]
240
          [(wordsize(32), 16, 20),
241 242
            # expected value: 14 (x86/Linux 28-06-2012):
            # 2013-11-13:     18 (x86/Windows, 64bit machine)
Austin Seipp's avatar
Austin Seipp committed
243
            # 2014-01-22:     23 (x86/Linux)
244
            # 2014-12-22:     23 (x86/Linux) death to silent superclasses
245
           (wordsize(64), 27, 20)]),
246 247
            # (amd64/Linux):            18
            # (amd64/Linux) 2012-02-07: 26
248
            # (amd64/Linux) 2013-02-12: 23; increased range to 10%
249
            # (amd64/Linux) 2013-04-03: 26
Austin Seipp's avatar
Austin Seipp committed
250
            # (amd64/Linux) 2013-09-11: 30; result of AMP patch
251
            # Increased range to 20%.  peak-usage varies from 22 to 26,
252
            #  depending on whether the old .hi file exists
253
            # (amd64/Linux) 2013-09-11: 37; better arity analysis (weird)
254
            # (amd64/Linux) (09/09/2014): 42, AMP changes (larger interfaces, more loading)
255
            # (amd64/Linux) 2014-10-13: 38: Stricter seqDmdType
256
            # (amd64/Linux) 2014-12-22: 27: death to silent superclasses
257

258
      compiler_stats_num_field('bytes allocated',
259
          [(wordsize(32), 122836340, 10),
260
            # 2011-06-28: 56380288  (x86/Linux)
Austin Seipp's avatar
Austin Seipp committed
261
            # 2012-10-30: 111189536 (x86/Windows)
262
            # 2013-11-13: 146626504 (x86/Windows, 64bit machine)
Austin Seipp's avatar
Austin Seipp committed
263
            # 2014-01-22: 162457940 (x86/Linux)
264
            # 2014-12-01: 162457940 (Windows)
265
            # 2014-12-22: 122836340 (Windows) Death to silent superclasses
266

267
           (wordsize(64), 243670824, 5)]),
268 269
            # (amd64/Linux) (28/06/2011):  73259544
            # (amd64/Linux) (07/02/2013): 224798696
eir@cis.upenn.edu's avatar
eir@cis.upenn.edu committed
270
            # (amd64/Linux) (02/08/2013): 236404384, increase from roles
Austin Seipp's avatar
Austin Seipp committed
271
            # (amd64/Linux) (11/09/2013): 290165632, increase from AMP warnings
272
            # (amd64/Linux) (22/11/2013): 308300448, GND via Coercible and counters for constraints solving
273
            # (amd64/Linux) (02/12/2013): 329795912, Coercible refactor
274
            # (amd64/Linux) (11/02/2014): 308422280, optimize Coercions in simpleOptExpr
275
            # (amd64/Linux) (23/05/2014): 324022680, unknown cause
276
            # (amd64/Linux) (2014-07-17): 332702112, general round of updates
277
            # (amd64/Linux) (2014-08-29): 313638592, w/w for INLINABLE things
278
            # (amd64/Linux) (09/09/2014): 407416464, AMP changes (larger interfaces, more loading)
279
            # (amd64/Linux) (14/09/2014): 385145080, BPP changes (more NoImplicitPrelude in base)
280
            # (amd64/Linux) (10/12/2014): 363103840, improvements in constraint solver
281
            # (Mac)         (18/12/2014): 350418600, improvements to flattener
282 283
            # (amd64/Linux) (22/12/2014): 243670824, Ha! Death to superclass constraints, makes
            #                                        much less code for Monad instances
284

285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308
###################################
# deactivated for now, as this metric became too volatile recently
#
#      compiler_stats_num_field('max_bytes_used',
#          [(wordsize(32), 11202304, 20),
#            # 2011-06-28:  2247016 (x86/Linux) (28/6/2011):
#            #(some date):  5511604
#            # 2013-11-13:  7218200 (x86/Windows, 64bit machine)
#            # 2014-04-04: 11202304 (x86/Windows, 64bit machine)
#           (wordsize(64), 13251728, 20)]),
#            # (amd64/Linux, intree) (28/06/2011):  4032024
#            # (amd64/Linux, intree) (07/02/2013):  9819288
#            # (amd64/Linux)         (14/02/2013):  8687360
#            # (amd64/Linux)         (18/02/2013):  9397488
#            # (amd64/Linux)         (02/08/2013): 10742536, increase from roles
#            # (amd64/Linux)         (19/08/2013): 9211816,  decrease apparently from better eta reduction
#            # (amd64/Linux)         (11/09/2013): 12000480, increase from AMP warnings
#            #                                     933cdf15a2d85229d3df04b437da31fdfbf4961f
#            # (amd64/Linux)         (22/11/2013): 16266992, GND via Coercible and counters for constraints solving
#            # (amd64/Linux)         (12/12/2013): 19821544, better One shot analysis
#            # (amd64/Linux)         (09/09/2014): 24357392, AMP changes (larger interfaces, more loading)
#            # (amd64/Linux)         (14/09/2014): 16053888, BPP changes (more NoImplicitPrelude in base)
#            # (amd64/Linux)         (19/09/2014): 18744992, unknown
#            # (amd64/Linux)         2014-10-13:   13251728, Stricter seqDmdType
309

310
       only_ways(['normal'])
Ian Lynagh's avatar
Ian Lynagh committed
311 312 313 314
      ],
     compile,
     [''])

Ian Lynagh's avatar
Ian Lynagh committed
315 316 317 318 319
test('T4007',
     normal,
     run_command,
     ['$MAKE -s --no-print-directory T4007'])

320
test('T5030',
321
     [compiler_stats_num_field('bytes allocated',
322
          [(wordsize(32), 227205560, 10),
323 324
           # previous:    196457520
           # 2012-10-08:  259547660 (x86/Linux, new codegen)
325
           # 2013-11-21:  198573456 (x86 Windows, 64 bit machine)
326 327 328
           # 2014-12-10:  227205560 constraint solver got worse again; more agressive solving
           #                        of family-applications leads to less sharing, I think

329
           (wordsize(64), 449042120, 10)]),
330 331 332
             # Previously 530000000 (+/- 10%)
             # 17/1/13:   602993184  (x86_64/Linux)
             #            (new demand analyser)
333 334
             # 2013-06-08 538467496  (x86_64/Linux)
             # ^ reason unknown
eir@cis.upenn.edu's avatar
eir@cis.upenn.edu committed
335 336
             # 2013-08-02 454498592  (amd64/Linux)
             # decrease from more aggressive coercion optimisations from roles
337 338
             # 2013-11-12 397672152  (amd64/Linux)
             # big decrease following better CSE and arity
339 340
             # 2014-07-17 409314320  (amd64/Linux)
             # general round of updates
Joachim Breitner's avatar
Joachim Breitner committed
341
             # 2014-09-10 385152728  post-AMP-cleanup
342
             # 2014-12-08 340969128  constraint solver perf improvements (esp kick-out)
343 344
             # 2014-12-10 449042120  constraint solver got worse again; more agressive solving
             #                          of family-applications leads to less sharing, I think
345

346 347 348 349 350
       only_ways(['normal'])
      ],
     compile,
     ['-fcontext-stack=300'])

Simon Peyton Jones's avatar
Simon Peyton Jones committed
351
test('T5631',
352
     [compiler_stats_num_field('bytes allocated',
353
          [(wordsize(32), 390199244, 10),
354
        # expected value: 392904228 (x86/Linux)
355
        # 2014-04-04:     346389856 (x86 Windows, 64 bit machine)
356
        # 2014-12-01:     390199244 (Windows laptop)
357
           (wordsize(64), 776121120, 5)]),
358
        # expected value: 774595008 (amd64/Linux):
359
        # expected value: 735486328 (amd64/Linux) 2012/12/12:
360
        # expected value: 690742040 (amd64/Linux) Call Arity improvements
361
        # 2014-09-09:     739704712 (amd64/Linux) AMP changes
362
        # 2014-11-04:     776121120 (amd64/Linux) new-flatten-skolems
Simon Peyton Jones's avatar
Simon Peyton Jones committed
363 364 365 366 367
       only_ways(['normal'])
      ],
     compile,
     [''])

368
test('parsing001',
369 370 371 372
     [compiler_stats_num_field('bytes allocated',
          [(wordsize(32), 274000576, 10),
           (wordsize(64), 587079016, 5)]),
        # expected value: 587079016 (amd64/Linux)
373 374 375 376 377
       only_ways(['normal']),
      ],
     compile_fail, [''])


378 379 380
test('T783',
     [ only_ways(['normal']),  # no optimisation for this one
      # expected value: 175,569,928 (x86/Linux)
381
      compiler_stats_num_field('bytes allocated',
382
          [(wordsize(32), 235002220, 5),
383
            # 2012-10-08: 226907420 (x86/Linux)
384 385
            # 2013-02-10: 329202116 (x86/Windows)
            # 2013-02-10: 338465200 (x86/OSX)
386
            # 2014-04-04: 319179104 (x86 Windows, 64 bit machine)
387 388
            # 2014-09-03: 223377364 (Windows) better specialisation, raft of core-to-core optimisations
            # 2014-12-22: 235002220 (Windows) not sure why
389

390
           (wordsize(64), 441932632, 10)]),
391 392 393 394 395 396
            # prev:       349263216 (amd64/Linux)
            # 07/08/2012: 384479856 (amd64/Linux)
            # 29/08/2012: 436927840 (amd64/Linux)
            # 12/11/2012: 640324528 (amd64/Linux)
            #   (OldCmm removed: not sure why this got worse, the
            #    other perf tests remained about the same)
397 398
            # 18/10/2013: 734038080 (amd64/Linux)
            #   (fix for #8456)
399 400
            # 24/10/2013: 654804144 (amd64/Linux)
            #   (fix previous fix for #8456)
401 402
            # 2014-07-17: 640031840 (amd64/Linux)
            #   (general round of updates)
403 404
            # 2014-08-29: 441932632  (amd64/Linux)
            #   (better specialisation, raft of core-to-core optimisations)
405
      extra_hc_opts('-static')
406 407
      ],
      compile,[''])
408 409 410

test('T5321Fun',
     [ only_ways(['normal']),  # no optimisation for this one
411
       compiler_stats_num_field('bytes allocated',
412
           [(wordsize(32), 206406188, 10),
413 414 415
             # prev:       300000000
             # 2012-10-08: 344416344 x86/Linux
             #  (increase due to new codegen)
416
             # 2014-09-03: 299656164     (specialisation and inlining)
417
             # 10/12/2014: 206406188     #  Improvements in constraint solver
418
            (wordsize(64), 429921312, 10)])
419
             # prev:       585521080
420 421 422 423
             # 29/08/2012: 713385808     #  (increase due to new codegen)
             # 15/05/2013: 628341952     #  (reason for decrease unknown)
             # 24/06/2013: 694019152     #  (reason for re-increase unknown)
             # 12/05/2014: 614409344     #  (specialisation and inlining changes)
Gabor Greif's avatar
Gabor Greif committed
424
             # 10/09/2014: 601629032     #  post-AMP-cleanup
425
             # 06/11/2014: 541287000     #  Simon's flat-skol changes to the constraint solver
426
             # 10/12/2014: 408110888     #  Improvements in constraint solver
427
             # 16/12/2014: 429921312     #  Flattener parameterized over roles
428 429 430 431 432
      ],
      compile,[''])

test('T5321FD',
     [ only_ways(['normal']),  # no optimisation for this one
433
      compiler_stats_num_field('bytes allocated',
434
          [(wordsize(32), 211699816, 10),
435 436 437
            # prev:       213380256
            # 2012-10-08: 240302920 (x86/Linux)
            #  (increase due to new codegen)
438 439
            # 2014-07-31: 211699816 (Windows) (-11%)
            #  (due to better optCoercion, 5e7406d9, #9233)
440
           (wordsize(64), 410895536, 10)])
441 442 443
            # prev:       418306336
            # 29/08/2012: 492905640
            #  (increase due to new codegen)
444
            # 15/05/2013: 406039584
445
            #  (reason for decrease unknown)
446
            # 08/06/2013: 476497048
447
            #  (reason for increase unknown)
448 449 450 451
            # before 2014-07-17: 441997096
            #  (with -8%, still in range, hence cause not known)
            # 2014-07-17: 426960992 (-11% of previous value)
            #  (due to better optCoercion, 5e7406d9, #9233)
452 453
            # 2014-10-08  410895536
            #  (various changes; biggest improvements due to 949ad67 and FastString package ids)
454 455
      ],
      compile,[''])
Ian Lynagh's avatar
Ian Lynagh committed
456 457 458

test('T5642',
     [ only_ways(['normal']),
459
       compiler_stats_num_field('bytes allocated',
460
           [(wordsize(32), 641085256, 10),
461
                     # sample from x86/Linux
Gabor Greif's avatar
Typos  
Gabor Greif committed
462
            # prev:        650000000
463
            # 2014-09-03:  753045568 
464
            # 2014-12-10:  641085256 Improvements in constraints solver
465 466

            (wordsize(64), 1282916024, 10)])
467 468
            # prev:        1300000000
            # 2014-07-17:  1358833928 (general round of updates)
469
            # 2014-08-07:  1402242360 (caused by 1fc60ea)
Simon Peyton Jones's avatar
Simon Peyton Jones committed
470
# Watch out for:
Joachim Breitner's avatar
Joachim Breitner committed
471 472 473 474 475
            # 23/05/2014:  1452688392 (More aggressive specialisation means we get
            #                          specialised copies of imported functions that
            #                          are ultimately discarded by trimAutoRules
            #                          It's a bizarre program with LOTS of data types)
            # 2014-09-10:  1536924976 post-AMP-cleanup
476
            # 2014-12-10:  1282916024 Improvements in constraints solver
Ian Lynagh's avatar
Ian Lynagh committed
477 478
      ],
      compile,['-O'])
Simon Peyton Jones's avatar
Simon Peyton Jones committed
479 480 481

test('T5837',
     [ only_ways(['normal']),
482
      compiler_stats_num_field('bytes allocated',
483
          [(wordsize(32), 115905208, 10),
484
             # 40000000 (x86/Linux)
485 486
             # 2013-11-13:  45520936 (x86/Windows, 64bit machine)
             # 2014-09-03:  37096484 (Windows laptop, w/w for INLINABLE things
487
             # 2014-12-01: 135914136 (Windows laptop, regression see below)
488
             # 2014-12-08  115905208  Constraint solver perf improvements (esp kick-out)
489
 
490
           (wordsize(64), 231155640, 10)])
491
             # sample: 3926235424 (amd64/Linux, 15/2/2012)
492 493
             # 2012-10-02 81879216
             # 2012-09-20 87254264 amd64/Linux
494
             # 2013-09-18 90587232 amd64/Linux
Austin Seipp's avatar
Austin Seipp committed
495 496
             # 2013-11-21 86795752 amd64/Linux, GND via Coercible and counters
             #                                  for constraints solving
497 498
             # 2014-08-29 73639840 amd64/Linux, w/w for INLINABLE things
             # 2014-10-08 73639840 amd64/Linux, Burning Bridges and other small changes
499
             # 2014-11-06 271028976       Linux, Accept big regression;
500
             #   See Note [An alternative story for the inert substitution] in TcFlatten
501
             # 2014-12-08 234790312 Constraint solver perf improvements (esp kick-out)
502 503
             # 2014-12-16 231155640 Mac  Flattener parameterized over roles;
             #                           some optimization
Simon Peyton Jones's avatar
Simon Peyton Jones committed
504
      ],
505
      compile_fail,['-ftype-function-depth=50'])
Simon Peyton Jones's avatar
Simon Peyton Jones committed
506 507 508

test('T6048',
     [ only_ways(['optasm']),
509
      compiler_stats_num_field('bytes allocated',
510
          [(wordsize(32), 49987836, 10),
511 512
            # prev:       38000000 (x86/Linux)
            # 2012-10-08: 48887164 (x86/Linux)
513
            # 2014-04-04: 62618072 (x86 Windows, 64 bit machine)
514
            # 2014-09-03: 56315812 (x86 Windows, w/w for INLINEAVBLE)
515 516
            # 2014-12-01: 49987836 (x86 Windows)

517
           (wordsize(64),  95946688, 12)])
518
             # 18/09/2012  97247032 amd64/Linux
519
             # 16/01/2014 108578664 amd64/Linux (unknown, likely foldl-via-foldr)
520
             # 18/01/2014  95960720 amd64/Linux Call Arity improvements
Austin Seipp's avatar
Austin Seipp committed
521
             # 28/02/2014 105556793 amd64/Linux (unknown, tweak in base/4d9e7c9e3 resulted in change)
Joachim Breitner's avatar
Joachim Breitner committed
522
             # 05/03/2014 110646312 amd64/Linux Call Arity became more elaborate
523
             # 14/07/2014 125431448 amd64/Linux unknown reason. Even worse in GHC-7.8.3. *shurg*
524
             # 29/08/2014 108354472 amd64/Linux w/w for INLINABLE things
525
             # 14/09/2014  88186056 amd64/Linux BPP part1 change (more NoImplicitPreludes in base)
526
             # 08/01/2014  95946688 amd64/Linux Mostly 4c834fd. Occasional spikes to 103822120!
Simon Peyton Jones's avatar
Simon Peyton Jones committed
527 528
      ],
      compile,[''])
529 530 531 532

test('T9020',
     [ only_ways(['optasm']),
      compiler_stats_num_field('bytes allocated',
533 534 535
          [(wordsize(32), 343005716, 10),
           # Original:    381360728
           # 2014-07-31:  343005716 (Windows) (general round of updates)
David Feuer's avatar
David Feuer committed
536
           (wordsize(64), 680162056, 10)])
537 538
           # prev:        795469104
           # 2014-07-17:  728263536 (general round of updates)
Joachim Breitner's avatar
Joachim Breitner committed
539
           # 2014-09-10:  785871680 post-AMP-cleanup
David Feuer's avatar
David Feuer committed
540
           # 2014-11-03:  680162056 Further Applicative and Monad adjustments
541 542
      ],
      compile,[''])
543 544 545 546

test('T9675',
     [ only_ways(['optasm']),
       compiler_stats_num_field('max_bytes_used',
547
          [(wordsize(64), 22220552, 25),
548
          # 2014-10-13    29596552
549
          # 2014-10-13    26570896   seq the DmdEnv in seqDmdType as well
550
          # 2014-10-13    18582472   different machines giving different results..
551
          # 2014-10-13    22220552   use the mean
552
           (wordsize(32), 11220552, 25)
553 554
          ]),
       compiler_stats_num_field('peak_megabytes_allocated',
555
          [(wordsize(64), 53, 15),
556
          # 2014-10-13    66
557
          # 2014-10-13    58         seq the DmdEnv in seqDmdType as well
558
          # 2014-10-13    49         different machines giving different results...
559
          # 2014-10-13    53         use the mean
560
            (wordsize(32), 25, 15)
561 562
          ]),
       compiler_stats_num_field('bytes allocated',
563 564
          [(wordsize(64), 544489040, 10)
          # 2014-10-13    544489040
565
          ,(wordsize(32), 250000000, 10)
566 567 568 569
          ]),
      ],
     compile,
     [''])
Simon Peyton Jones's avatar
Simon Peyton Jones committed
570 571 572 573

test('T9872a',
     [ only_ways(['normal']),
       compiler_stats_num_field('bytes allocated',
574
          [(wordsize(64), 2680733672, 5),
Simon Peyton Jones's avatar
Simon Peyton Jones committed
575
          # 2014-12-10    5521332656    Initally created
576
          # 2014-12-16    5848657456    Flattener parameterized over roles
577
          # 2014-12-18    2680733672    Reduce type families even more eagerly
578
           (wordsize(32), 1325592896, 5)
Simon Peyton Jones's avatar
Simon Peyton Jones committed
579 580 581 582 583 584 585 586
          ]),
      ],
     compile_fail,
     [''])

test('T9872b',
     [ only_ways(['normal']),
       compiler_stats_num_field('bytes allocated',
587
          [(wordsize(64), 3480212048, 5),
Simon Peyton Jones's avatar
Simon Peyton Jones committed
588
          # 2014-12-10    6483306280    Initally created
589
          # 2014-12-16    6892251912    Flattener parameterized over roles
590
          # 2014-12-18    3480212048    Reduce type families even more eagerly
591
           (wordsize(32), 1700000000, 5)
Simon Peyton Jones's avatar
Simon Peyton Jones committed
592 593 594 595
          ]),
      ],
     compile_fail,
     [''])
596 597 598
test('T9872c',
     [ only_ways(['normal']),
       compiler_stats_num_field('bytes allocated',
599
          [(wordsize(64), 2963554096, 5),
600
          # 2014-12-10    5495850096    Initally created
601
          # 2014-12-16    5842024784    Flattener parameterized over roles
602
          # 2014-12-18    2963554096    Reduce type families even more eagerly
603
           (wordsize(32), 1500000000, 5)
604 605 606 607
          ]),
      ],
     compile_fail,
     [''])
608 609 610
test('T9872d',
     [ only_ways(['normal']),
       compiler_stats_num_field('bytes allocated',
611
          [(wordsize(64), 687562440, 5),
612 613
          # 2014-12-18    796071864   Initally created
          # 2014-12-18    739189056   Reduce type families even more eagerly
614
          # 2015-01-07    687562440   TrieMap leaf compression
615
           (wordsize(32), 328810212, 5)
616 617 618 619
          ]),
      ],
     compile,
     [''])
620 621 622 623

test('T9961',
     [ only_ways(['normal']),
       compiler_stats_num_field('bytes allocated',
624
          [(wordsize(64), 772510192, 5),
625
          # 2015-01-12    807117816   Initally created
626
           (wordsize(32), 375647160, 5)
627 628 629 630
          ]),
      ],
     compile,
     ['-O'])