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 <simo...@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- > | boun...@haskell.org] On Behalf Of Christian Höner zu Siederdissen > | Sent: 27 April 2017 23:10 > | To: glasgow-haskell-users@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 <choe...@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@haskell.org > | > https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.h > | > askell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fglasgow-haskell-users&data > | > =02%7C01%7Csimonpj%40microsoft.com%7Cd36333a2218f4c513f5a08d48dba157d% > | > 7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636289277756070800&sdata= > | > DGsBNjZPuDbpEONyJBOy7BDimCELGHNM1trxjCP5luk%3D&reserved=0 > | _______________________________________________ > | Glasgow-haskell-users mailing list > | Glasgow-haskell-users@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%7Cd36333a2218f4c513f5a08d48d > | ba157d%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636289277756070800&sd > | ata=DGsBNjZPuDbpEONyJBOy7BDimCELGHNM1trxjCP5luk%3D&reserved=0 _______________________________________________ Glasgow-haskell-users mailing list Glasgow-haskell-users@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/glasgow-haskell-users