Are join points inlined differently from normal bindings?
matthewtpickering at gmail.com
Tue Jan 16 11:15:44 UTC 2018
I have quite a complicated program which relies on the optimiser inlining
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 -
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.
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?
More information about the ghc-devs