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.