gcc/libgo/runtime
Ian Lance Taylor 4e62f891cd runtime: expose the g variable
Currently, getg is implemented in C, which loads the thread-local
    g variable. The g variable is declared static in C.
    
    This CL exposes the g variable, so it can be accessed from the Go
    side. This allows the Go compiler to inline getg calls to direct
    access of g.
    
    Currently, the actual inlining is only implemented in the gollvm
    compiler. The g variable is thread-local and the compiler backend
    may choose to cache the TLS address in a register or on stack. If
    a thread switch happens the cache may become invalid. I don't
    know how to disable the TLS address cache in gccgo, therefore
    the inlining of getg is not implemented. In the future gccgo may
    gain this if we know how to do it safely.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/186238

From-SVN: r273499
2019-07-15 21:17:16 +00:00
..
aeshash.c
arch.h
array.h
defs.h
env_posix.c
getncpu-aix.c
getncpu-bsd.c
getncpu-hurd.c
getncpu-irix.c
getncpu-linux.c
getncpu-none.c
getncpu-solaris.c
go-assert.c
go-assert.h
go-caller.c libgo: reduce overhead for memory/block/mutex profiling 2019-05-14 14:59:42 +00:00
go-callers.c libgo: delay applying profile stack-frame skip until fixup 2019-06-03 23:07:54 +00:00
go-cdiv.c
go-cgo.c
go-construct-map.c
go-context.S runtime: fix assembly syntax 2019-06-03 20:06:50 +00:00
go-ffi.c
go-fieldtrack.c
go-libmain.c runtime: remove unnecessary functions calling between C and Go 2019-06-03 23:02:43 +00:00
go-main.c runtime: remove unnecessary functions calling between C and Go 2019-06-03 23:02:43 +00:00
go-matherr.c
go-memclr.c runtime: mark memequal and memclrNoHeapPointers nosplit 2019-06-25 06:16:21 +00:00
go-memequal.c runtime: mark memequal and memclrNoHeapPointers nosplit 2019-06-25 06:16:21 +00:00
go-nanotime.c
go-nosys.c
go-now.c
go-reflect-call.c
go-runtime-error.c compiler: optimize append of make 2019-05-31 21:18:39 +00:00
go-setenv.c
go-signal.c
go-string.h
go-type.h runtime: drop unused C type reflection code 2019-05-31 21:32:47 +00:00
go-unsafe-pointer.c
go-unsetenv.c
go-unwind.c
go-varargs.c
panic.c
print.c
proc.c runtime: expose the g variable 2019-07-15 21:17:16 +00:00
rtems-task-variable-add.c
runtime_c.c
runtime.h runtime: remove unnecessary functions calling between C and Go 2019-06-03 23:02:43 +00:00
stack.c
yield.c