X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2FcoreSyn%2FCoreSyn.lhs;h=1181931fa7723d4e1be533a6709a23dfa0313ffd;hb=14a496fd0b3aa821b69eb02736d5f41086576761;hp=5e03e4d64e1ef21d8471b0a7367346ef9d42f160;hpb=a66541af84d102f32b73fb7f89f48008c01092a6;p=ghc-hetmet.git diff --git a/compiler/coreSyn/CoreSyn.lhs b/compiler/coreSyn/CoreSyn.lhs index 5e03e4d..1181931 100644 --- a/compiler/coreSyn/CoreSyn.lhs +++ b/compiler/coreSyn/CoreSyn.lhs @@ -483,7 +483,20 @@ data UnfoldingSource -- Replace uf_tmpl each time around | InlineStable -- From an INLINE or INLINABLE pragma - -- Do not replace uf_tmpl; instead, keep it unchanged + -- INLINE if guidance is UnfWhen + -- INLINABLE if guidance is UnfIfGoodArgs + -- (well, technically an INLINABLE might be made + -- UnfWhen if it was small enough, and then + -- it will behave like INLINE outside the current + -- module, but that is the way automatic unfoldings + -- work so it is consistent with the intended + -- meaning of INLINABLE). + -- + -- uf_tmpl may change, but only as a result of + -- gentle simplification, it doesn't get updated + -- to the current RHS during compilation as with + -- InlineRhs. + -- -- See Note [InlineRules] | InlineCompulsory -- Something that *has* no binding, so you *must* inline it