Are join points inlined differently from normal bindings?

Simon Peyton Jones simonpj at microsoft.com
Tue Jan 16 14:21:53 UTC 2018


| 1. Does the inliner treat join point bindings differently to normal
| bindings?

I don't think so.  Use -dverbose-core2core -ddump-inlinings -ddump-occur-anal to see exactly what is getting inlined and why.

| 2. How can I stop the compiler introducing this join point which seems to
| get in the way of the inliner?

I don't think you can.  I don't see why they should get in the way ... quite the reverse actually.

Simon

| -----Original Message-----
| From: ghc-devs [mailto:ghc-devs-bounces at haskell.org] On Behalf Of Matthew
| Pickering
| Sent: 16 January 2018 11:16
| To: GHC developers <ghc-devs at haskell.org>
| Subject: Are join points inlined differently from normal bindings?
| 
| I have quite a complicated program which relies on the optimiser inlining
| very aggressively.
| 
| In 8.0.2, it works fine and produces the core I am expecting.
| 
| In 8.2.2, one of the bindings is identified as a join point and then not
| inlined when doing so would lead to the same code. Bumping the unfolding-
| use-threshold to 10 (from 8) causes it to be inlined and produces the
| right core.
| 
| Here is the core for reference -
| https://na01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgist.git
| hub.com%2Fmpickering%2Fbe30105b97fa7e4149c9fa935d72cd1c&data=02%7C01%7Csi
| monpj%40microsoft.com%7C4bdf68e2ca8e480b1ba808d55cd2a9db%7C72f988bf86f141
| af91ab2d7cd011db47%7C1%7C0%7C636516982263961282&sdata=W59V18L00glmNB7XCKB
| B90hTEU3QrgiT9rhGgO2ezec%3D&reserved=0
| 
| I haven't dug into which exact part of my program introduces this join
| point but this seems like a regression from 8.0.2.
| 
| However, I make a mailing list post as I unsure how to expect the inliner
| to treat join points.
| 
| Questions.
| 
| 1. Does the inliner treat join point bindings differently to normal
| bindings?
| 2. How can I stop the compiler introducing this join point which seems to
| get in the way of the inliner?
| | Cheers,
| 
| Matt
| _______________________________________________
| ghc-devs mailing list
| ghc-devs at haskell.org
| https://na01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fmail.hask
| ell.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fghc-
| devs&data=02%7C01%7Csimonpj%40microsoft.com%7C4bdf68e2ca8e480b1ba808d55cd
| 2a9db%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C636516982263961282&sda
| ta=iNkZMaLfXCcP2ulWv2AlfVTvVq3LvsSadB6BytF6NUg%3D&reserved=0


More information about the ghc-devs mailing list