I don't know the whole story, but here are some pointers to get you started:

- Internally, inlined code is called "unfolding". You can see the definition in
  CoreSyn.

- CoreUnfold module has important functions to decide whether to inline or not.

- Actual work of replacing identifiers with their definitions is done in
  Simplify and probably in some other places.

I believe if you start grepping for functions in CoreUnfold you can find all
the places that inlining is done. It may be just the simplifier, I'm not sure.
(see SimplUtils.preInlineUnconditionally and
SimplUtils.postInlineUnconditionally)

When you figure the details it'd be great if you could give us a hand in #10766
:)

2015-11-10 15:57 GMT-05:00 Эдгар Жаворонков <edzhavoron...@gmail.com>:
> And can you tell me, where can i find a source code in GHC to see, how this
> pragma is handeled?
>
> ---
> С уважением,
> Жаворонков Эдгар
>
> Best regards,
> Edgar A. Zhavoronkov
>
> 2015-11-10 17:48 GMT+03:00 Ömer Sinan Ağacan <omeraga...@gmail.com>:
>>
>> There's this section in GHC user manual:
>>
>> https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/pragmas.html#inline-noinline-pragma
>>
>> But see also: https://ghc.haskell.org/trac/ghc/ticket/10766
>>
>> 2015-11-10 5:16 GMT-05:00 Эдгар Жаворонков <edzhavoron...@gmail.com>:
>> > Hello everyone!
>> >
>> > Where can i read about how does INLINE pragma in compiler works?
>> >
>> >
>> > ---
>> > С уважением,
>> > Жаворонков Эдгар
>> >
>> > Best regards,
>> > Edgar A. Zhavoronkov
>> >
>> > _______________________________________________
>> > ghc-devs mailing list
>> > ghc-devs@haskell.org
>> > http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>> >
>
>
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to