all.T 24.6 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), 19882188, 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
           (wordsize(64), 40000000, 15)]),
131 132 133 134 135 136 137 138 139
             # 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)
140 141
             # 2014-07-14:     36670800  (amd64/Linux)
             #  (reason unknown, setting expected value somewhere in between)
142

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

Simon Peyton Jones's avatar
Simon Peyton Jones committed
167
test('T4801',
168 169
     [ # expect_broken(5224),
       # temporarily unbroken (#5227)
170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
###################################
# 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
188

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

193
           (wordsize(32), 185242032, 10),
Austin Seipp's avatar
Austin Seipp committed
194 195
           # prev:        185669232 (x86/OSX)
           # 2014-01-22:  211198056 (x86/Linux)
196
           # 2014-09-03:  185242032 (Windows laptop)
Joachim Breitner's avatar
Joachim Breitner committed
197
           (wordsize(64), 382056344, 10)]),
198 199 200
            # 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
201
            # 2014-04-08: 362939272 (amd64/Linux) cumulation of various smaller improvements over recent commits
Joachim Breitner's avatar
Joachim Breitner committed
202
            # 2014-10-08: 382056344 (amd64/Linux) stricter foldr2 488e95b
Simon Marlow's avatar
Simon Marlow committed
203

204
###################################
205
# deactivated for now, as this metric became too volatile recently
206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227
#
#     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)
228 229
       only_ways(['normal']),
       extra_hc_opts('-static')
Simon Peyton Jones's avatar
Simon Peyton Jones committed
230 231 232 233
      ],
     compile,
     [''])

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

253
      compiler_stats_num_field('bytes allocated',
Austin Seipp's avatar
Austin Seipp committed
254
          [(wordsize(32), 162457940, 10),
255
            # 2011-06-28: 56380288  (x86/Linux)
Austin Seipp's avatar
Austin Seipp committed
256
            # 2012-10-30: 111189536 (x86/Windows)
257
            # 2013-11-13: 146626504 (x86/Windows, 64bit machine)
Austin Seipp's avatar
Austin Seipp committed
258
            # 2014-01-22: 162457940 (x86/Linux)
259
           (wordsize(64), 385145080, 5)]),
260 261
            # (amd64/Linux) (28/06/2011):  73259544
            # (amd64/Linux) (07/02/2013): 224798696
eir@cis.upenn.edu's avatar
eir@cis.upenn.edu committed
262
            # (amd64/Linux) (02/08/2013): 236404384, increase from roles
Austin Seipp's avatar
Austin Seipp committed
263
            # (amd64/Linux) (11/09/2013): 290165632, increase from AMP warnings
264
            # (amd64/Linux) (22/11/2013): 308300448, GND via Coercible and counters for constraints solving
Austin Seipp's avatar
Austin Seipp committed
265
                # (amd64/Linux) (02/12/2013): 329795912, Coercible refactor
266
            # (amd64/Linux) (11/02/2014): 308422280, optimize Coercions in simpleOptExpr
267
            # (amd64/Linux) (23/05/2014): 324022680, unknown cause
268
            # (amd64/Linux) (2014-07-17): 332702112, general round of updates
269
            # (amd64/Linux) (2014-08-29): 313638592, w/w for INLINABLE things
270
            # (amd64/Linux) (09/09/2014): 407416464, AMP changes (larger interfaces, more loading)
271
            # (amd64/Linux) (14/09/2014): 385145080, BPP changes (more NoImplicitPrelude in base)
272

273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296
###################################
# 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
297

298
       only_ways(['normal'])
Ian Lynagh's avatar
Ian Lynagh committed
299 300 301 302
      ],
     compile,
     [''])

Ian Lynagh's avatar
Ian Lynagh committed
303 304 305 306 307
test('T4007',
     normal,
     run_command,
     ['$MAKE -s --no-print-directory T4007'])

308
test('T5030',
309
     [compiler_stats_num_field('bytes allocated',
310
          [(wordsize(32), 198573456, 10),
311 312
           # previous:    196457520
           # 2012-10-08:  259547660 (x86/Linux, new codegen)
313
           # 2013-11-21:  198573456 (x86 Windows, 64 bit machine)
Joachim Breitner's avatar
Joachim Breitner committed
314
           (wordsize(64), 385152728, 10)]),
315 316 317
             # Previously 530000000 (+/- 10%)
             # 17/1/13:   602993184  (x86_64/Linux)
             #            (new demand analyser)
318 319
             # 2013-06-08 538467496  (x86_64/Linux)
             # ^ reason unknown
eir@cis.upenn.edu's avatar
eir@cis.upenn.edu committed
320 321
             # 2013-08-02 454498592  (amd64/Linux)
             # decrease from more aggressive coercion optimisations from roles
322 323
             # 2013-11-12 397672152  (amd64/Linux)
             # big decrease following better CSE and arity
324 325
             # 2014-07-17 409314320  (amd64/Linux)
             # general round of updates
Joachim Breitner's avatar
Joachim Breitner committed
326
             # 2014-09-10 385152728  post-AMP-cleanup
327

328 329 330 331 332
       only_ways(['normal'])
      ],
     compile,
     ['-fcontext-stack=300'])

Simon Peyton Jones's avatar
Simon Peyton Jones committed
333
test('T5631',
334
     [compiler_stats_num_field('bytes allocated',
335
          [(wordsize(32), 346389856, 10),
336
        # expected value: 392904228 (x86/Linux)
337
        # 2014-04-04:     346389856 (x86 Windows, 64 bit machine)
338
           (wordsize(64), 776121120, 5)]),
339
        # expected value: 774595008 (amd64/Linux):
340
        # expected value: 735486328 (amd64/Linux) 2012/12/12:
341
        # expected value: 690742040 (amd64/Linux) Call Arity improvements
342
        # 2014-09-09:     739704712 (amd64/Linux) AMP changes
343
        # 2014-11-04:     776121120 (amd64/Linux) new-flatten-skolems
Simon Peyton Jones's avatar
Simon Peyton Jones committed
344 345 346 347 348
       only_ways(['normal'])
      ],
     compile,
     [''])

349
test('parsing001',
350 351 352 353
     [compiler_stats_num_field('bytes allocated',
          [(wordsize(32), 274000576, 10),
           (wordsize(64), 587079016, 5)]),
        # expected value: 587079016 (amd64/Linux)
354 355 356 357 358
       only_ways(['normal']),
      ],
     compile_fail, [''])


359 360 361
test('T783',
     [ only_ways(['normal']),  # no optimisation for this one
      # expected value: 175,569,928 (x86/Linux)
362
      compiler_stats_num_field('bytes allocated',
363
          [(wordsize(32), 223377364, 5),
364
            # 2012-10-08: 226907420 (x86/Linux)
365 366
            # 2013-02-10: 329202116 (x86/Windows)
            # 2013-02-10: 338465200 (x86/OSX)
367
            # 2014-04-04: 319179104 (x86 Windows, 64 bit machine)
368 369
            # 2014-09-03: 223377364 (Windows, better specialisation, raft of core-to-core optimisations)

370
           (wordsize(64), 441932632, 10)]),
371 372 373 374 375 376
            # 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)
377 378
            # 18/10/2013: 734038080 (amd64/Linux)
            #   (fix for #8456)
379 380
            # 24/10/2013: 654804144 (amd64/Linux)
            #   (fix previous fix for #8456)
381 382
            # 2014-07-17: 640031840 (amd64/Linux)
            #   (general round of updates)
383 384
            # 2014-08-29: 441932632  (amd64/Linux)
            #   (better specialisation, raft of core-to-core optimisations)
385
      extra_hc_opts('-static')
386 387
      ],
      compile,[''])
388 389 390

test('T5321Fun',
     [ only_ways(['normal']),  # no optimisation for this one
391
       compiler_stats_num_field('bytes allocated',
392
           [(wordsize(32), 299656164, 10),
393 394 395
             # prev:       300000000
             # 2012-10-08: 344416344 x86/Linux
             #  (increase due to new codegen)
396
             # 2014-09-03: 299656164     (specialisation and inlining)
397
            (wordsize(64), 541287000, 10)])
398
             # prev:       585521080
399 400 401 402
             # 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)
Joachim Breitner's avatar
Joachim Breitner committed
403
             # 10/09/2014: 601629032     #  post-AMP-cleanp
404
             # 06/11/2014: 541287000     #  Simon's flat-skol changes to the constraint solver
405 406 407 408 409
      ],
      compile,[''])

test('T5321FD',
     [ only_ways(['normal']),  # no optimisation for this one
410
      compiler_stats_num_field('bytes allocated',
411
          [(wordsize(32), 211699816, 10),
412 413 414
            # prev:       213380256
            # 2012-10-08: 240302920 (x86/Linux)
            #  (increase due to new codegen)
415 416
            # 2014-07-31: 211699816 (Windows) (-11%)
            #  (due to better optCoercion, 5e7406d9, #9233)
417
           (wordsize(64), 410895536, 10)])
418 419 420
            # prev:       418306336
            # 29/08/2012: 492905640
            #  (increase due to new codegen)
421
            # 15/05/2013: 406039584
422
            #  (reason for decrease unknown)
423
            # 08/06/2013: 476497048
424
            #  (reason for increase unknown)
425 426 427 428
            # 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)
429 430
            # 2014-10-08  410895536
            #  (various changes; biggest improvements due to 949ad67 and FastString package ids)
431 432
      ],
      compile,[''])
Ian Lynagh's avatar
Ian Lynagh committed
433 434 435

test('T5642',
     [ only_ways(['normal']),
436
       compiler_stats_num_field('bytes allocated',
437
           [(wordsize(32), 753045568, 10),
438
                     # sample from x86/Linux
Gabor Greif's avatar
Typos  
Gabor Greif committed
439
            # prev:        650000000
440
            # 2014-09-03:  753045568 
Joachim Breitner's avatar
Joachim Breitner committed
441
            (wordsize(64), 1536924976, 10)])
442 443
            # prev:        1300000000
            # 2014-07-17:  1358833928 (general round of updates)
444
            # 2014-08-07:  1402242360 (caused by 1fc60ea)
Simon Peyton Jones's avatar
Simon Peyton Jones committed
445
# Watch out for:
Joachim Breitner's avatar
Joachim Breitner committed
446 447 448 449 450
            # 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
Ian Lynagh's avatar
Ian Lynagh committed
451 452
      ],
      compile,['-O'])
Simon Peyton Jones's avatar
Simon Peyton Jones committed
453 454 455

test('T5837',
     [ only_ways(['normal']),
456
      compiler_stats_num_field('bytes allocated',
457
          [(wordsize(32), 37096484, 10),
458 459
             # 40000000 (x86/Linux)
             # 2013-11-13: 45520936 (x86/Windows, 64bit machine)
460
             # 2041-09-03: 37096484 (Windows laptop, w/w for INLINABLE things
461
           (wordsize(64), 271028976, 10)])
462
             # sample: 3926235424 (amd64/Linux, 15/2/2012)
463 464
             # 2012-10-02 81879216
             # 2012-09-20 87254264 amd64/Linux
465
             # 2013-09-18 90587232 amd64/Linux
Austin Seipp's avatar
Austin Seipp committed
466 467
             # 2013-11-21 86795752 amd64/Linux, GND via Coercible and counters
             #                                  for constraints solving
468 469
             # 2014-08-29 73639840 amd64/Linux, w/w for INLINABLE things
             # 2014-10-08 73639840 amd64/Linux, Burning Bridges and other small changes
470
             # 2014-11-06 271028976       Linux, Accept big regression;
471
             #   See Note [An alternative story for the inert substitution] in TcFlatten
Simon Peyton Jones's avatar
Simon Peyton Jones committed
472
      ],
473
      compile_fail,['-ftype-function-depth=50'])
Simon Peyton Jones's avatar
Simon Peyton Jones committed
474 475 476

test('T6048',
     [ only_ways(['optasm']),
477
      compiler_stats_num_field('bytes allocated',
478
          [(wordsize(32), 56315812, 10),
479 480
            # prev:       38000000 (x86/Linux)
            # 2012-10-08: 48887164 (x86/Linux)
481
            # 2014-04-04: 62618072 (x86 Windows, 64 bit machine)
482
            # 2014-09-03: 56315812 (x86 Windows, w/w for INLINEAVBLE)
483
           (wordsize(64), 88186056, 12)])
484
             # 18/09/2012  97247032 amd64/Linux
485
             # 16/01/2014 108578664 amd64/Linux (unknown, likely foldl-via-foldr)
486
             # 18/01/2014  95960720 amd64/Linux Call Arity improvements
Austin Seipp's avatar
Austin Seipp committed
487
             # 28/02/2014 105556793 amd64/Linux (unknown, tweak in base/4d9e7c9e3 resulted in change)
Joachim Breitner's avatar
Joachim Breitner committed
488
             # 05/03/2014 110646312 amd64/Linux Call Arity became more elaborate
489
             # 14/07/2014 125431448 amd64/Linux unknown reason. Even worse in GHC-7.8.3. *shurg*
490
             # 29/08/2014 108354472 amd64/Linux w/w for INLINABLE things
491
             # 14/09/2014  88186056 amd64/Linux BPP part1 change (more NoImplicitPreludes in base)
Simon Peyton Jones's avatar
Simon Peyton Jones committed
492 493
      ],
      compile,[''])
494 495 496 497

test('T9020',
     [ only_ways(['optasm']),
      compiler_stats_num_field('bytes allocated',
498 499 500
          [(wordsize(32), 343005716, 10),
           # Original:    381360728
           # 2014-07-31:  343005716 (Windows) (general round of updates)
David Feuer's avatar
David Feuer committed
501
           (wordsize(64), 680162056, 10)])
502 503
           # prev:        795469104
           # 2014-07-17:  728263536 (general round of updates)
Joachim Breitner's avatar
Joachim Breitner committed
504
           # 2014-09-10:  785871680 post-AMP-cleanup
David Feuer's avatar
David Feuer committed
505
           # 2014-11-03:  680162056 Further Applicative and Monad adjustments
506 507
      ],
      compile,[''])
508 509 510 511

test('T9675',
     [ only_ways(['optasm']),
       compiler_stats_num_field('max_bytes_used',
512
          [(wordsize(64), 22220552, 25),
513
          # 2014-10-13    29596552
514
          # 2014-10-13    26570896   seq the DmdEnv in seqDmdType as well
515
          # 2014-10-13    18582472   different machines giving different results..
516
          # 2014-10-13    22220552   use the mean
517 518
          ]),
       compiler_stats_num_field('peak_megabytes_allocated',
519
          [(wordsize(64), 53, 15),
520
          # 2014-10-13    66
521
          # 2014-10-13    58         seq the DmdEnv in seqDmdType as well
522
          # 2014-10-13    49         different machines giving different results...
523
          # 2014-10-13    53         use the mean
524 525
          ]),
       compiler_stats_num_field('bytes allocated',
526 527
          [(wordsize(64), 544489040, 10)
          # 2014-10-13    544489040
528 529 530 531
          ]),
      ],
     compile,
     [''])