Skip to content
  • Simon Peyton Jones's avatar
    Do not inline bottoming things · a0174d22
    Simon Peyton Jones authored
    If a function seems small, worker/wrapper won't split it; instead
    it turns it into an INLINE function.
    
    But if it's a /bottoming/ function that's a bad idea.  We want
    don't want to inline bottoming functions unless they are /really/
    small (smaller than the call itself) and that's handled by a
    different branch in certainlyWillInline.
    
    So this patch adds a not-bottom test to the UnfIfGoodArgs case of
    certainlyWillInline.
    
    No big perf effect, but this will tend to keep error code out of
    functions, and hence make them a bit more likely to inline.
    
    I fell over this when fiddling with #13144
    a0174d22