On Fri, Aug 26, 2016 at 2:56 AM, Cholerae Hu <cholerae...@gmail.com> wrote:
> I'm curious that how does compiler recognize runtime.KeepAlive specially?

The compiler already recognizes some functions specially, most notably
math.Sqrt.  Search for "Sqrt" in cmd/compile/internal/gc/walk.go.

Ian

> 在 2016年8月26日星期五 UTC+8上午12:04:57,Ian Lance Taylor写道:
>>
>> On Thu, Aug 25, 2016 at 12:15 AM, Cholerae Hu <chole...@gmail.com> wrote:
>> > Does that mean that only inlined functions will be optimized and any
>> > functions not inlined will not be optimized ?
>>
>> I'm not really sure what you are asking.
>>
>> A function that is not inlined will not be inlined.  That is
>> sufficient to ensure that runtime.KeepAlive works as intended.
>>
>> A function that is not inlined, for whatever reason, will still be
>> optimized as usual.
>>
>> Ian
>>
>> > 在 2016年8月25日星期四 UTC+8上午11:55:12,Ian Lance Taylor写道:
>> >>
>> >> On Wed, Aug 24, 2016 at 7:06 PM, Cholerae Hu <chole...@gmail.com>
>> >> wrote:
>> >> >
>> >> > I've read the source of package runtime, and found that
>> >> > runtime.KeepAlive is
>> >> > an empty function. If go compiler can do dead code elimination in the
>> >> > future, how to protect runtime.KeepAlive from being optimized?
>> >>
>> >> The KeepAlive function is marked with the magic go:noinline comment,
>> >> so it can't be inlined.
>> >>
>> >> In any case it seems possible that the compiler will recognize the
>> >> function specially in the future, for greater efficiency.
>> >>
>> >> Ian
>> >
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "golang-nuts" group.
>> > To unsubscribe from this group and stop receiving emails from it, send
>> > an
>> > email to golang-nuts...@googlegroups.com.
>> > For more options, visit https://groups.google.com/d/optout.
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to