The attached patch adds an InlineCost value class to wrap the costs returned by Inliner::getInlineCost. The motivation is that it encodes whether the cost equates to "always" inline or "never" inline, instead of returning the magic constants -2000000000 and 2000000000 respectively.<div>
<br></div><div>Previously there were cases where always functions were not inlined (in fact, it looked to me like the always inliner would almost never work). Additionally, I am worried about cases where the fudge factor computation overflows when using the large magic constants. With this change the inliner is guaranteed to respect the "always" and "never" requests.</div>
<div><br></div><div> - Daniel</div>