[GHC] #13543: Improve demand analysis for join points
GHC
ghc-devs at haskell.org
Thu Mar 8 13:20:35 UTC 2018
#13543: Improve demand analysis for join points
-------------------------------------+-------------------------------------
Reporter: simonpj | Owner: (none)
Type: bug | Status: closed
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Resolution: fixed | Keywords: JoinPoints
Operating System: Unknown/Multiple | Architecture:
| Unknown/Multiple
Type of failure: None/Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by alpmestan):
When running `./validate --slow`, I found out that the `T13543` test fails
with all 3 of these ways: `hpc`, `optasm`, `optllvm`.
{{{
=====> T13543(hpc) 1 of 1 [0, 0, 0]
cd "./simplCore/should_compile/T13543.run" && "/home/alp/ghc/inplace/test
spaces/ghc-stage2" -c T13543.hs -dcore-lint -dcmm-lint -no-user-package-db
-rtsopts -fno-warn-missed-specialisations -fshow-warning-groups
-fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
-O -fhpc -ddump-str-signatures
Actual stderr output differs from expected:
diff -uw "./simplCore/should_compile/T13543.run/T13543.stderr.normalised"
"./simplCore/should_compile/T13543.run/T13543.comp.stderr.normalised"
--- ./simplCore/should_compile/T13543.run/T13543.stderr.normalised
2018-03-08 14:13:19.867965000 +0100
+++ ./simplCore/should_compile/T13543.run/T13543.comp.stderr.normalised
2018-03-08 14:13:19.867965000 +0100
@@ -1 +1,12 @@
+==================== Strictness signatures ====================
+Foo.$trModule: m
+Foo.f: <S(S),1*U(1*U)><L,1*U><L,1*U>m
+Foo.g: <S(S(S)S(S)),1*U(1*U(U),1*U(U))>m
+
+
+
+==================== Strictness signatures ====================
+Foo.$trModule: m
+Foo.f: <S(S),1*U(1*U)><L,1*U><L,1*U>m
+Foo.g: <S(S(S)S(S)),1*U(1*U(U),1*U(U))>m
*** unexpected failure for T13543(hpc)
}}}
{{{
=====> T13543(optasm) 1 of 1 [0, 0, 0]
cd "./simplCore/should_compile/T13543.run" && "/home/alp/ghc/inplace/test
spaces/ghc-stage2" -c T13543.hs -dcore-lint -dcmm-lint -no-user-package-db
-rtsopts -fno-warn-missed-specialisations -fshow-warning-groups
-fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
-O -fasm -ddump-str-signatures
Actual stderr output differs from expected:
diff -uw "./simplCore/should_compile/T13543.run/T13543.stderr.normalised"
"./simplCore/should_compile/T13543.run/T13543.comp.stderr.normalised"
--- ./simplCore/should_compile/T13543.run/T13543.stderr.normalised
2018-03-08 14:16:02.367965000 +0100
+++ ./simplCore/should_compile/T13543.run/T13543.comp.stderr.normalised
2018-03-08 14:16:02.367965000 +0100
@@ -1 +1,12 @@
+==================== Strictness signatures ====================
+Foo.$trModule: m
+Foo.f: <S(S),1*U(1*U)><S(S),1*U(U)><S(S),1*U(U)>m
+Foo.g: <S(S(S)S(S)),1*U(1*U(U),1*U(U))>m
+
+
+
+==================== Strictness signatures ====================
+Foo.$trModule: m
+Foo.f: <S(S),1*U(1*U)><S(S),1*U(U)><S(S),1*U(U)>m
+Foo.g: <S(S(S)S(S)),1*U(1*U(U),1*U(U))>m
*** unexpected failure for T13543(optasm)
}}}
{{{
=====> T13543(optllvm) 1 of 1 [0, 0, 0]
cd "./simplCore/should_compile/T13543.run" && "/home/alp/ghc/inplace/test
spaces/ghc-stage2" -c T13543.hs -dcore-lint -dcmm-lint -no-user-package-db
-rtsopts -fno-warn-missed-specialisations -fshow-warning-groups
-fdiagnostics-color=never -fno-diagnostics-show-caret -dno-debug-output
-O -fllvm -ddump-str-signatures
Actual stderr output differs from expected:
diff -uw "./simplCore/should_compile/T13543.run/T13543.stderr.normalised"
"./simplCore/should_compile/T13543.run/T13543.comp.stderr.normalised"
--- ./simplCore/should_compile/T13543.run/T13543.stderr.normalised
2018-03-08 14:16:28.627965000 +0100
+++ ./simplCore/should_compile/T13543.run/T13543.comp.stderr.normalised
2018-03-08 14:16:28.627965000 +0100
@@ -1 +1,12 @@
+==================== Strictness signatures ====================
+Foo.$trModule: m
+Foo.f: <S(S),1*U(1*U)><S(S),1*U(U)><S(S),1*U(U)>m
+Foo.g: <S(S(S)S(S)),1*U(1*U(U),1*U(U))>m
+
+
+
+==================== Strictness signatures ====================
+Foo.$trModule: m
+Foo.f: <S(S),1*U(1*U)><S(S),1*U(U)><S(S),1*U(U)>m
+Foo.g: <S(S(S)S(S)),1*U(1*U(U),1*U(U))>m
*** unexpected failure for T13543(optllvm)
}}}
In all 3 cases, we're expecting an empty stderr (that we get with other
ways like `normal`) but we instead get the strictness signatures dumped
there, because of the flag that we pass to ghc:
{{{
test('T13543', normal, compile, ['-ddump-str-signatures'])
}}}
Should I just strip that flag so that these tests pass? It's still odd
that say `normal` and `optasm` dump things in different places, isn't it?
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13543#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list