join points and stream fusion?
Simon Peyton Jones
simonpj at microsoft.com
Fri Apr 28 07:29:44 UTC 2017
Thank you!
| -----Original Message-----
| From: Christian Höner zu Siederdissen [mailto:choener at bioinf.uni-
| leipzig.de]
| Sent: 28 April 2017 00:14
| To: Simon Peyton Jones <simonpj at microsoft.com>
| Cc: glasgow-haskell-users at haskell.org
| Subject: Re: join points and stream fusion?
|
| Sorry,
|
| with the addendum, I have constructed a very small example:
| https://ghc.haskell.org/trac/ghc/ticket/13623
|
| This is new with ghc 8.2-rc1 and does not show up earlier.
|
| Viele Gruesse,
| Christian
|
| * Simon Peyton Jones <simonpj at microsoft.com> [28.04.2017 00:35]:
| > I'm afraid I don't have enough context to understand this thread.
| >
| > Could you offer a concrete example (as small as possible), and
| explain how to reproduce the problem you are seeing. Don't forget to
| give the compiler version you are using, and any libraries you depend
| on (as few as poss).
| >
| > Is this a regression? I.e. did some earlier version of GHC do better
| on the exact same code?
| >
| > Maybe open a Trac ticket.
| >
| > Thanks
| >
| > Simon
| >
| > | -----Original Message-----
| > | From: Glasgow-haskell-users [mailto:glasgow-haskell-users-
| > | bounces at haskell.org] On Behalf Of Christian Höner zu Siederdissen
| > | Sent: 27 April 2017 23:10
| > | To: glasgow-haskell-users at haskell.org
| > | Subject: Re: join points and stream fusion?
| > |
| > | As an addendum,
| > |
| > | I think what causes this is the following. I have a function
| > | (|||) xs ys = \lu ij -> xs lu ij Stream.++ ys lu ij xs and ys are
| > | two stream-generating functions and (Stream.++) concatenates
| > | streams. In the example I have four streams:
| > | xs_1 ||| xs_2 ||| xs_3 ||| xs_4
| > |
| > | However, here I end up with a join point on (++). Further
| evidenced
| > | (?) by the curious occurance of s1uf4 ... (Left (Left (Left
| ...))).
| > | Additional calls then are (Left (Left (Right ))) and so on.
| > |
| > | It would be really good if (|||) is *not* turned into a join
| point.
| > |
| > | Best,
| > | Christian
| > |
| > | * Christian Höner zu Siederdissen <choener at bioinf.uni-leipzig.de>
| > | [27.04.2017 23:30]:
| > | > Dear all,
| > | >
| > | > have some of you experienced bad code generation in ghc-8.2-rc1
| in
| > | > combination with stream fusion from the vector package?
| > | >
| > | > Unfortunately, the problem occurs with ADPfusion code which
| means
| > | > no simple example, but I'm asking because of the following core
| below.
| > | >
| > | > In ghc-8.0 I have nice core, here however constructor
| > | > specialization has not happened, neither with the Left/Right nor
| with the SPEC.
| > | >
| > | > The running time in ghc-8.0 is 2.6 seconds, in rc-1 10.9
| seconds.
| > | >
| > | > Best,
| > | > Christian
| > | >
| > | > joinrec {
| > | > $wfoldlM'_loop2_s1uf4
| > | > $wfoldlM'_loop2_s1uf4 w_s1ueX ww1_s1uf2 w1_s1ueZ
| > | > = case w_s1ueX of { __DEFAULT ->
| > | > case w1_s1ueZ of {
| > | > Left sa_au90 ->
| > | > case sa_au90 of {
| > | > Left sa1_XuNq ->
| > | > case sa1_XuNq of {
| > | > Left sa2_XuNe ->
| > | > case sa2_XuNe of {
| > | > SL s2_alTo k_alTp ->
| > | > case k_alTp of {
| > | > __DEFAULT ->
| > | > jump $wfoldlM'_loop2_s1uf4
| > | > SPEC ww1_s1uf2 lvl211_s1IDG;
| > | > 1# ->
| > | > jump $wfoldlM'_loop2_s1uf4
| > | > SPEC ww1_s1uf2 (Left (Left (Left (SR
| > | > s2_alTo))))
| > | >
| > | > _______________________________________________
| > | > Glasgow-haskell-users mailing list
| > | > Glasgow-haskell-users at haskell.org
| > | >
| https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fma
| > | > il.h
| > | > askell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fglasgow-haskell-
| users&
| > | > data
| > | >
| =02%7C01%7Csimonpj%40microsoft.com%7Cd36333a2218f4c513f5a08d48dba1
| > | > 57d%
| > | >
| 7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636289277756070800&sd
| > | > ata=
| > | > DGsBNjZPuDbpEONyJBOy7BDimCELGHNM1trxjCP5luk%3D&reserved=0
| > | _______________________________________________
| > | Glasgow-haskell-users mailing list
| > | Glasgow-haskell-users at haskell.org
| > |
| https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail
| > | .hask
| > | ell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fglasgow-haskell-
| > |
| users&data=02%7C01%7Csimonpj%40microsoft.com%7Cd36333a2218f4c513f5a0
| > | 8d48d
| > |
| ba157d%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6362892777560708
| > | 00&sd
| > | ata=DGsBNjZPuDbpEONyJBOy7BDimCELGHNM1trxjCP5luk%3D&reserved=0
More information about the Glasgow-haskell-users
mailing list