all.T 24.3 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)
Simon Marlow's avatar
Simon Marlow committed
170
      compiler_stats_num_field('peak_megabytes_allocated',# Note [residency]
Austin Seipp's avatar
Austin Seipp committed
171
          [(platform('x86_64-apple-darwin'), 70, 1),
172
                           # expected value: 58 (amd64/OS X)
Austin Seipp's avatar
Austin Seipp committed
173
                           # 13/01/2014 - 70
174
           (wordsize(32), 30, 20),
175
           (wordsize(64), 48, 20)]),
176
177
            # prev:       50 (amd64/Linux)
            # 19/10/2012: 64 (amd64/Linux)
178
            #                (^ REASON UNKNOWN!)
179
            # 12/11/2012: 49 (amd64/Linux)
180
            #                (^ REASON UNKNOWN!)
181
182
            # 28/8/13:    60 (amd64/Linux)
            #                (^ REASON UNKNOWN!)
183
            # 2014-09-10: 55 post-AMP-cleanup
Joachim Breitner's avatar
Joachim Breitner committed
184
            # 2014-10-08: 62 (jumps between 55 and 71 observed -- GC tipping point?)
185
            # 2014-10-13: 48 stricter seqDmdType
Simon Marlow's avatar
Simon Marlow committed
186

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

403
404
405
406
407
      ],
      compile,[''])

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

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

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

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

test('T9020',
     [ only_ways(['optasm']),
      compiler_stats_num_field('bytes allocated',
496
497
498
          [(wordsize(32), 343005716, 10),
           # Original:    381360728
           # 2014-07-31:  343005716 (Windows) (general round of updates)
Joachim Breitner's avatar
Joachim Breitner committed
499
           (wordsize(64), 785871680, 10)])
500
501
           # prev:        795469104
           # 2014-07-17:  728263536 (general round of updates)
Joachim Breitner's avatar
Joachim Breitner committed
502
           # 2014-09-10:  785871680 post-AMP-cleanup
503
504
      ],
      compile,[''])
505
506
507
508

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