Test #9233 in perf/compiler/T9233
authorRichard Eisenberg <eir@cis.upenn.edu>
Mon, 3 Aug 2015 15:11:04 +0000 (11:11 -0400)
committerRichard Eisenberg <eir@cis.upenn.edu>
Tue, 4 Aug 2015 15:13:05 +0000 (11:13 -0400)
Summary:
Ideally, we could use Phab's numbers to set the perf
test correctly. But even if that's not possible, then I need help
writing my `all.T`. With the version you see here, I get the following

```
Traceback (most recent call last):
  File "/Users/rae/Documents/ghc-valid/testsuite/driver/testlib.py", line 801, in do_test
    result = func(*[name,way] + args)
TypeError: multimod_compile() takes exactly 4 arguments (6 given)
```

I don't know how to fix this.

Test Plan: validate

Reviewers: austin, bgamari, thomie

Subscribers: thomie

Differential Revision: https://phabricator.haskell.org/D1129

GHC Trac Issues: #9233

testsuite/tests/perf/compiler/T9233.hs [new file with mode: 0644]
testsuite/tests/perf/compiler/T9233a.hs [new file with mode: 0644]
testsuite/tests/perf/compiler/all.T

diff --git a/testsuite/tests/perf/compiler/T9233.hs b/testsuite/tests/perf/compiler/T9233.hs
new file mode 100644 (file)
index 0000000..1636be6
--- /dev/null
@@ -0,0 +1,12 @@
+module T9233 where
+
+import T9233a
+import Data.Functor.Identity
+
+upds :: (Monad m) => [String -> Options -> m Options]
+upds = [
+  \a o -> return o { flags = (flags o) { f1 = splitComma a ++ " " ++ f1 (flags o) } }
+  ]
+
+setAll :: Options -> Options
+setAll _ = (getOpt upds :: Identity ()) `seq` undefined
diff --git a/testsuite/tests/perf/compiler/T9233a.hs b/testsuite/tests/perf/compiler/T9233a.hs
new file mode 100644 (file)
index 0000000..8f7283a
--- /dev/null
@@ -0,0 +1,128 @@
+module T9233a where
+
+
+data X = X {
+  f1 :: String,
+  f2 :: !Bool,
+  f3 :: !Bool,
+  f4 :: !Bool,
+  f5 :: !Bool,
+  f6 :: !Bool,
+  f7 :: !Bool,
+  f8 :: !Bool,
+  f9 :: !Bool,
+  f10 :: !Bool,
+  f11 :: !Bool,
+  f12 :: !Bool,
+  f13 :: !Bool,
+  f14 :: !Bool,
+  f15 :: !Bool,
+  f16 :: !Bool,
+  f17 :: !Bool,
+  f18 :: !Bool,
+  f19 :: !Bool,
+  f20 :: !Bool,
+  f21 :: !Bool,
+  f22 :: !Bool,
+  f23 :: !Bool,
+  f24 :: !Bool,
+  f25 :: !Bool,
+  f26 :: !Bool,
+  f27 :: !Bool,
+  f28 :: !Bool,
+  f29 :: !Bool,
+  f30 :: !Bool,
+  f31 :: !Bool,
+  f32 :: !Bool,
+  f33 :: !Bool,
+  f34 :: !Bool,
+  f35 :: !Bool,
+  f36 :: !Bool,
+  f37 :: !Bool,
+  f38 :: !Bool,
+  f39 :: !Bool,
+  f40 :: !Bool,
+  f41 :: !Bool,
+  f42 :: !Bool,
+  f43 :: !Bool,
+  f44 :: !Bool,
+  f45 :: !Bool,
+  f46 :: !Bool,
+  f47 :: !Bool,
+  f48 :: !Bool,
+  f49 :: !Bool,
+  f50 :: !Bool,
+  f51 :: !Bool,
+  f52 :: !Bool,
+  f53 :: !Bool,
+  f54 :: !Bool,
+  f55 :: !Bool,
+  f56 :: !Bool,
+  f57 :: !Bool,
+  f58 :: !Bool,
+  f59 :: !Bool,
+  f60 :: !Bool,
+  f61 :: !Bool,
+  f62 :: !Bool,
+  f63 :: !Bool,
+  f64 :: !Bool,
+  f65 :: !Bool,
+  f66 :: !Bool,
+  f67 :: !Bool,
+  f68 :: !Bool,
+  f69 :: !Bool,
+  f70 :: !Bool,
+  f71 :: !Bool,
+  f72 :: !Bool,
+  f73 :: !Bool,
+  f74 :: !Bool,
+  f75 :: !Bool,
+  f76 :: !Bool,
+  f77 :: !Bool,
+  f78 :: !Bool,
+  f79 :: !Bool,
+  f80 :: !Bool,
+  f81 :: !Bool,
+  f82 :: !Bool,
+  f83 :: !Bool,
+  f84 :: !Bool,
+  f85 :: !Bool,
+  f86 :: !Bool,
+  f87 :: !Bool,
+  f88 :: !Bool,
+  f89 :: !Bool,
+  f90 :: !Bool,
+  f91 :: !Bool,
+  f92 :: !Bool,
+  f93 :: !Bool,
+  f94 :: !Bool,
+  f95 :: !Bool,
+  f96 :: !Bool,
+  f97 :: !Bool,
+  f98 :: !Bool,
+  f99 :: !Bool,
+  f100 :: !Bool
+  }
+
+data Options = Options {
+  flags :: !X,
+  o2 :: !Bool,
+  o3 :: !Bool,
+  o4 :: !Bool,
+  o5 :: !Bool,
+  o6 :: !Bool,
+  o7 :: !Bool,
+  o8 :: !Bool,
+  o9 :: !Bool,
+  o10 :: !Bool,
+  o11 :: !Bool,
+  o12 :: !Bool
+  }
+
+splitComma :: String -> String
+splitComma _ = "a"
+{-# NOINLINE splitComma #-}
+
+getOpt :: Monad m => [String -> Options -> m Options] -> m ()
+getOpt _ = return ()
+{-# NOINLINE getOpt #-}
index 4cb811d..66b13bd 100644 (file)
@@ -495,7 +495,7 @@ test('T5642',
            [(wordsize(32), 641085256, 10),
                      # sample from x86/Linux
             # prev:        650000000
-            # 2014-09-03:  753045568 
+            # 2014-09-03:  753045568
             # 2014-12-10:  641085256 Improvements in constraints solver
 
             (wordsize(64), 1282916024, 10)])
@@ -679,3 +679,15 @@ test('T9961',
       ],
      compile,
      ['-O'])
+
+test('T9233',
+    [ only_ways(['normal']),
+      compiler_stats_num_field('bytes allocated',
+        [(wordsize(64), 999826288, 5),
+                # 999826288   4 Aug 2015   initial value
+        (wordsize(32), 1, 5)   # Put in your value here if you hit this
+       ]),
+      extra_clean(['T9233a.hi', 'T9233a.o'])
+    ],
+    multimod_compile,
+    ['T9233', '-v0 -O2 -fno-spec-constr'])