
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://gist.github.com/mpickering/be30105b97fa7e4149c9fa935d72cd1c 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