all.T 23.8 KB
Newer Older
1
def no_lint(name, opts):
2
   opts.compiler_always_flags = \
3
       filter(lambda opt: opt != '-dcore-lint' and opt != '-dcmm-lint', opts.compiler_always_flags)
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), 9684256, 10)]),
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
             # 2014-09-14 9684256, 10 # try to lower it a bit more to match Phab's CI
66
      compiler_stats_num_field('bytes allocated',
67
          [(platform('i386-unknown-mingw32'), 301784492, 5),
68 69
                                 #            215582916 (x86/Windows)
                                 # 2012-10-29 298921816 (x86/Windows)
70
                                 # 2013-02-10 310633884 (x86/Windows)
71
                                 # 2013-11-13 317975916 (x86/Windows, 64bit machine)
72
                                 # 2014-04-04 301784492 (x86/Windows, 64bit machine)
73
           (wordsize(32), 303300692, 1),
74 75 76 77
             #            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
78
             # 2014-01-22 316103268 (x86/Linux)
79
             # 2014-06-29 303300692 (x86/Linux)
Joachim Breitner's avatar
Joachim Breitner committed
80
           (wordsize(64), 630299456, 5)]),
81 82 83 84 85 86 87
             # 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)
88
             # 29/08/2012 633334184 (amd64/Linux) new codegen
89
             # 18/09/2012 641959976 (amd64/Linux)
90 91 92 93 94
             # 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
95
             # 10/02/2014 660922376 (x86_64/Linux) call arity analysis
96
             # 17/07/2014 651626680 (x86_64/Linux) roundabout update
Joachim Breitner's avatar
Joachim Breitner committed
97
             # 10/09/2014 630299456 (x86_64/Linux) post-AMP-cleanup
98
      only_ways(['normal']),
99

100
      extra_hc_opts('-dcore-lint -static')
101 102
          # 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
103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
      ],
     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',
120
     [
Simon Marlow's avatar
Simon Marlow committed
121
      compiler_stats_num_field('max_bytes_used', # Note [residency]
122
          [(wordsize(32), 19882188, 15),
123 124 125 126
             #            17725476 (x86/OS X)
             #            14593500 (Windows)
             # 2013-02-10 20651576 (x86/Windows)
             # 2013-02-10 20772984 (x86/OSX)
127
             # 2013-11-13 24009436 (x86/Windows, 64bit machine)
128
             # 2014-04-24 19882188 (x86/Windows, 64bit machine)
129
           (wordsize(64), 40000000, 15)]),
130 131 132 133 134 135 136 137 138
             # 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)
139 140
             # 2014-07-14:     36670800  (amd64/Linux)
             #  (reason unknown, setting expected value somewhere in between)
141

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

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

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

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

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

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

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

270
      compiler_stats_num_field('max_bytes_used',
271 272 273 274 275
          [(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)
276
           (wordsize(64), 13251728, 20)]),
277 278
            # (amd64/Linux, intree) (28/06/2011):  4032024
            # (amd64/Linux, intree) (07/02/2013):  9819288
Simon Marlow's avatar
Simon Marlow committed
279
            # (amd64/Linux)         (14/02/2013):  8687360
280
            # (amd64/Linux)         (18/02/2013):  9397488
eir@cis.upenn.edu's avatar
eir@cis.upenn.edu committed
281
            # (amd64/Linux)         (02/08/2013): 10742536, increase from roles
Simon Peyton Jones's avatar
Simon Peyton Jones committed
282
            # (amd64/Linux)         (19/08/2013): 9211816,  decrease apparently from better eta reduction
Austin Seipp's avatar
Austin Seipp committed
283
            # (amd64/Linux)         (11/09/2013): 12000480, increase from AMP warnings
Simon Peyton Jones's avatar
Simon Peyton Jones committed
284
            #                                     933cdf15a2d85229d3df04b437da31fdfbf4961f
285
            # (amd64/Linux)         (22/11/2013): 16266992, GND via Coercible and counters for constraints solving
286
            # (amd64/Linux)         (12/12/2013): 19821544, better One shot analysis
287
            # (amd64/Linux)         (09/09/2014): 24357392, AMP changes (larger interfaces, more loading)
288
            # (amd64/Linux)         (14/09/2014): 16053888, BPP changes (more NoImplicitPrelude in base)
289
            # (amd64/Linux)         (19/09/2014): 18744992, unknown
290
            # (amd64/Linux)         2014-10-13:   13251728, Stricter seqDmdType
291

Ian Lynagh's avatar
Ian Lynagh committed
292 293 294 295 296
       only_ways(['normal'])
      ],
     compile,
     [''])

Ian Lynagh's avatar
Ian Lynagh committed
297 298 299 300 301
test('T4007',
     normal,
     run_command,
     ['$MAKE -s --no-print-directory T4007'])

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

322 323 324 325 326
       only_ways(['normal'])
      ],
     compile,
     ['-fcontext-stack=300'])

Simon Peyton Jones's avatar
Simon Peyton Jones committed
327
test('T5631',
328
     [compiler_stats_num_field('bytes allocated',
329
          [(wordsize(32), 346389856, 10),
330
        # expected value: 392904228 (x86/Linux)
331
        # 2014-04-04:     346389856 (x86 Windows, 64 bit machine)
332
           (wordsize(64), 739704712, 5)]),
333
        # expected value: 774595008 (amd64/Linux):
334
        # expected value: 735486328 (amd64/Linux) 2012/12/12:
335
        # expected value: 690742040 (amd64/Linux) Call Arity improvements
336
        # 2014-09-09:     739704712 (amd64/Linux) AMP changes
Simon Peyton Jones's avatar
Simon Peyton Jones committed
337 338 339 340 341
       only_ways(['normal'])
      ],
     compile,
     [''])

342
test('parsing001',
343 344 345 346
     [compiler_stats_num_field('bytes allocated',
          [(wordsize(32), 274000576, 10),
           (wordsize(64), 587079016, 5)]),
        # expected value: 587079016 (amd64/Linux)
347 348 349 350 351
       only_ways(['normal']),
      ],
     compile_fail, [''])


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

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

test('T5321Fun',
     [ only_ways(['normal']),  # no optimisation for this one
384
       compiler_stats_num_field('bytes allocated',
385
           [(wordsize(32), 299656164, 10),
386 387 388
             # prev:       300000000
             # 2012-10-08: 344416344 x86/Linux
             #  (increase due to new codegen)
389
             # 2014-09-03: 299656164     (specialisation and inlining)
Joachim Breitner's avatar
Joachim Breitner committed
390
            (wordsize(64), 601629032, 10)])
391
             # prev:       585521080
392 393 394 395
             # 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
396
             # 10/09/2014: 601629032     #  post-AMP-cleanp
397

398 399 400 401 402
      ],
      compile,[''])

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

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

test('T5837',
     [ only_ways(['normal']),
449
      compiler_stats_num_field('bytes allocated',
450
          [(wordsize(32), 37096484, 10),
451 452
             # 40000000 (x86/Linux)
             # 2013-11-13: 45520936 (x86/Windows, 64bit machine)
453
             # 2041-09-03: 37096484 (Windows laptop, w/w for INLINABLE things
454
           (wordsize(64), 75765728, 10)])
455
             # sample: 3926235424 (amd64/Linux, 15/2/2012)
456 457
             # 2012-10-02 81879216
             # 2012-09-20 87254264 amd64/Linux
458
             # 2013-09-18 90587232 amd64/Linux
Austin Seipp's avatar
Austin Seipp committed
459 460
             # 2013-11-21 86795752 amd64/Linux, GND via Coercible and counters
             #                                  for constraints solving
461 462
             # 2014-08-29 73639840 amd64/Linux, w/w for INLINABLE things
             # 2014-10-08 73639840 amd64/Linux, Burning Bridges and other small changes
Simon Peyton Jones's avatar
Simon Peyton Jones committed
463
      ],
464
      compile_fail,['-ftype-function-depth=50'])
Simon Peyton Jones's avatar
Simon Peyton Jones committed
465 466 467

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

test('T9020',
     [ only_ways(['optasm']),
      compiler_stats_num_field('bytes allocated',
489 490 491
          [(wordsize(32), 343005716, 10),
           # Original:    381360728
           # 2014-07-31:  343005716 (Windows) (general round of updates)
Joachim Breitner's avatar
Joachim Breitner committed
492
           (wordsize(64), 785871680, 10)])
493 494
           # prev:        795469104
           # 2014-07-17:  728263536 (general round of updates)
Joachim Breitner's avatar
Joachim Breitner committed
495
           # 2014-09-10:  785871680 post-AMP-cleanup
496 497
      ],
      compile,[''])
498 499 500 501

test('T9675',
     [ only_ways(['optasm']),
       compiler_stats_num_field('max_bytes_used',
502
          [(wordsize(64), 18582472, 15),
503
          # 2014-10-13    29596552
504
          # 2014-10-13    26570896   seq the DmdEnv in seqDmdType as well
505
          # 2014-10-13    18582472   different machines giving different results..
506 507
          ]),
       compiler_stats_num_field('peak_megabytes_allocated',
508
          [(wordsize(64), 49, 4),
509
          # 2014-10-13    66
510
          # 2014-10-13    58         seq the DmdEnv in seqDmdType as well
511
          # 2014-10-13    49         different machines giving different results...
512 513
          ]),
       compiler_stats_num_field('bytes allocated',
514 515
          [(wordsize(64), 544489040, 10)
          # 2014-10-13    544489040
516 517 518 519
          ]),
      ],
     compile,
     [''])