summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2021-10-07 23:47:08 +0200
committerJoachim Breitner <mail@joachim-breitner.de>2021-10-07 23:47:08 +0200
commitba0e8418c85de0e8867ba8b07443f41fbd4c7b31 (patch)
tree709de5615261ce3e2718329962ce975d634f17f0
parent298df16d7005a3cead2df1cc7280509ddf7c6c76 (diff)
downloadhaskell-wip/joachim/T14052Type-test.tar.gz
New test case: Variant of T14052 with data type definitionswip/joachim/T14052Type-test
previous attempts at fixing #11547 and #20455 were reverted because they showed some quadratic behaviour, and the test case T15052 was added to catch that. I believe that similar quadratic behavor can be triggered with current master, by using type definitions rather than value definitions, so this adds a test case similar to T14052. I have hopes that my attempts at fixing #11547 will lead to code that avoid the quadratic increase here. Or not, we will see. In any case, having this in `master` and included in future comparisons will be useful.
-rw-r--r--testsuite/tests/perf/should_run/T14052Type.hs3
-rw-r--r--testsuite/tests/perf/should_run/T14052Type.script1003
-rw-r--r--testsuite/tests/perf/should_run/all.T5
3 files changed, 1011 insertions, 0 deletions
diff --git a/testsuite/tests/perf/should_run/T14052Type.hs b/testsuite/tests/perf/should_run/T14052Type.hs
new file mode 100644
index 0000000000..cb0c77629f
--- /dev/null
+++ b/testsuite/tests/perf/should_run/T14052Type.hs
@@ -0,0 +1,3 @@
+module T14052Type where
+
+data T = T
diff --git a/testsuite/tests/perf/should_run/T14052Type.script b/testsuite/tests/perf/should_run/T14052Type.script
new file mode 100644
index 0000000000..dc45171fd8
--- /dev/null
+++ b/testsuite/tests/perf/should_run/T14052Type.script
@@ -0,0 +1,1003 @@
+:l T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
+data T = T
+:m T14052Type
diff --git a/testsuite/tests/perf/should_run/all.T b/testsuite/tests/perf/should_run/all.T
index 6e603b46f4..2a7ab46026 100644
--- a/testsuite/tests/perf/should_run/all.T
+++ b/testsuite/tests/perf/should_run/all.T
@@ -332,6 +332,11 @@ test('T14052',
ghci_script,
['T14052.script'])
+test('T14052Type',
+ [collect_compiler_stats('bytes allocated',15)],
+ ghci_script,
+ ['T14052Type.script'])
+
test('T14936',
[collect_stats('bytes allocated',10)],
compile_and_run,