1
0
mirror of https://github.com/golang/go synced 2024-10-02 10:28:34 -06:00
go/src/runtime
David Lazar 699175a11a cmd/compile,link: generate PC-value tables with inlining information
In order to generate accurate tracebacks, the runtime needs to know the
inlined call stack for a given PC. This creates two tables per function
for this purpose. The first table is the inlining tree (stored in the
function's funcdata), which has a node containing the file, line, and
function name for every inlined call. The second table is a PC-value
table that maps each PC to a node in the inlining tree (or -1 if the PC
is not the result of inlining).

To give the appearance that inlining hasn't happened, the runtime also
needs the original source position information of inlined AST nodes.
Previously the compiler plastered over the line numbers of inlined AST
nodes with the line number of the call. This meant that the PC-line
table mapped each PC to line number of the outermost call in its inlined
call stack, with no way to access the innermost line number.

Now the compiler retains line numbers of inlined AST nodes and writes
the innermost source position information to the PC-line and PC-file
tables. Some tools and tests expect to see outermost line numbers, so we
provide the OutermostLine function for displaying line info.

To keep track of the inlined call stack for an AST node, we extend the
src.PosBase type with an index into a global inlining tree. Every time
the compiler inlines a call, it creates a node in the global inlining
tree for the call, and writes its index to the PosBase of every inlined
AST node. The parent of this node is the inlining tree index of the
call. -1 signifies no parent.

For each function, the compiler creates a local inlining tree and a
PC-value table mapping each PC to an index in the local tree.  These are
written to an object file, which is read by the linker.  The linker
re-encodes these tables compactly by deduplicating function names and
file names.

This change increases the size of binaries by 4-5%. For example, this is
how the go1 benchmark binary is impacted by this change:

section             old bytes   new bytes   delta
.text               3.49M ± 0%  3.49M ± 0%   +0.06%
.rodata             1.12M ± 0%  1.21M ± 0%   +8.21%
.gopclntab          1.50M ± 0%  1.68M ± 0%  +11.89%
.debug_line          338k ± 0%   435k ± 0%  +28.78%
Total               9.21M ± 0%  9.58M ± 0%   +4.01%

Updates #19348.

Change-Id: Ic4f180c3b516018138236b0c35e0218270d957d3
Reviewed-on: https://go-review.googlesource.com/37231
Run-TryBot: David Lazar <lazard@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Austin Clements <austin@google.com>
2017-03-03 21:29:30 +00:00
..
cgo runtime: add cgo support for GOARCH=mips{,le} 2016-12-14 23:52:33 +00:00
debug runtime/debug: don't run a GC when setting SetGCPercent negative 2017-02-10 18:28:37 +00:00
internal runtime/internal/atomic: crash on unaligned 64-bit ops on 32-bit MIPS 2016-11-22 02:05:07 +00:00
msan
pprof runtime/pprof: fix data race between Profile.Add and Profile.WriteTo 2017-03-02 23:30:07 +00:00
race runtime/race: allow TestFail to run longer than 0.00s 2016-11-07 02:55:52 +00:00
testdata runtime: add explicit (void) in C to avoid GCC 7 problem 2017-01-30 19:27:49 +00:00
trace os: use poller for file I/O 2017-02-15 19:31:55 +00:00
alg.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
append_test.go runtime: make append only clear uncopied memory 2016-10-04 22:40:20 +00:00
asm_386.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm_amd64.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm_amd64p32.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm_arm64.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm_arm.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm_mips64x.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm_mipsx.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm_ppc64x.h all: single space after period. 2016-03-02 00:13:47 +00:00
asm_ppc64x.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm_s390x.s runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
asm.s runtime: cull dead code 2016-08-22 16:41:34 +00:00
atomic_arm64.s
atomic_mips64x.s
atomic_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
atomic_pointer.go runtime: perform write barrier before pointer write 2016-10-28 20:47:52 +00:00
atomic_ppc64x.s sync/atomic, runtime/internal/atomic: improve ppc64x atomics 2016-05-05 18:52:28 +00:00
callers_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_mmap.go runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
cgo_ppc64x.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgo_sigaction.go runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
cgo.go cmd/cgo, runtime, runtime/cgo: TSAN support for malloc 2016-05-25 23:22:24 +00:00
cgocall.go runtime: handle SIGPIPE in c-archive and c-shared programs 2017-02-03 20:07:36 +00:00
cgocallback.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
cgocheck.go runtime: access modules via a slice 2016-11-01 16:04:12 +00:00
chan_test.go all: don't call t.Fatal from a goroutine 2016-11-15 15:13:48 +00:00
chan.go runtime: perform write barriers on direct channel receive 2016-10-31 23:46:13 +00:00
chanbarrier_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
closure_test.go
compiler.go all: single space after period. 2016-03-02 00:13:47 +00:00
complex_test.go
complex.go
cpuflags_amd64.go runtime: improve memmove for amd64 2016-10-06 10:21:58 +00:00
cpuidlow_amd64.s runtime: improve memmove for amd64 2016-10-06 10:21:58 +00:00
cpuprof.go runtime/pprof: use new profile buffers for CPU profiling 2017-02-24 17:01:47 +00:00
cputicks.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
crash_cgo_test.go runtime: check that pprof accepts but doesn't need executable 2017-02-24 20:46:37 +00:00
crash_nonunix_test.go runtime: if the test program hangs, try to get a stack trace 2016-06-15 15:03:48 +00:00
crash_test.go runtime, cmd/go: roll back stale message, test detail 2017-03-01 18:50:27 +00:00
crash_unix_test.go all: sprinkle t.Parallel on some slow tests 2016-11-04 16:56:57 +00:00
debug.go all: single space after period. 2016-03-02 00:13:47 +00:00
defs1_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs1_netbsd_arm.go runtime, cmd/link: fix netbsd/arm EABI support 2016-10-24 15:23:13 +00:00
defs1_solaris_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs2_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs3_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_arm_linux.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_darwin_386.go
defs_darwin_amd64.go
defs_darwin_arm64.go
defs_darwin_arm.go
defs_darwin.go
defs_dragonfly_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_dragonfly.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_freebsd_386.go runtime: sleep on CLOCK_MONOTONIC in futexsleep1 on freebsd 2016-10-01 01:25:21 +00:00
defs_freebsd_amd64.go runtime: sleep on CLOCK_MONOTONIC in futexsleep1 on freebsd 2016-10-01 01:25:21 +00:00
defs_freebsd_arm.go runtime: sleep on CLOCK_MONOTONIC in futexsleep1 on freebsd 2016-10-01 01:25:21 +00:00
defs_freebsd.go runtime: sleep on CLOCK_MONOTONIC in futexsleep1 on freebsd 2016-10-01 01:25:21 +00:00
defs_linux_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_arm64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_arm.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_mips64x.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
defs_linux_ppc64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_ppc64le.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux_s390x.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_linux.go
defs_nacl_386.go
defs_nacl_amd64p32.go
defs_nacl_arm.go
defs_netbsd_386.go
defs_netbsd_amd64.go
defs_netbsd_arm.go
defs_netbsd.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_386.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_amd64.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd_arm.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_openbsd.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_plan9_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_plan9_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_plan9_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
defs_solaris_amd64.go
defs_solaris.go runtime: unify handling of alternate signal stack 2016-09-26 04:07:31 +00:00
defs_windows_386.go
defs_windows_amd64.go
defs_windows.go
duff_386.s
duff_amd64.s
duff_arm64.s runtime, cmd/compile: implement and use DUFFCOPY on ARM64 2016-09-27 15:07:31 +00:00
duff_arm.s
duff_mips64x.s
duff_ppc64x.s
env_plan9.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
env_posix.go runtime: eliminate unnecessary type conversions 2016-03-07 20:53:27 +00:00
env_test.go
error.go cmd/compile: make panicwrap argument-free 2017-02-11 23:27:35 +00:00
example_test.go runtime: add Frames example 2017-02-13 06:10:35 +00:00
export_arm_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
export_futex_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
export_linux_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
export_mmap_test.go runtime: fetch physical page size from the OS 2016-09-06 21:05:50 +00:00
export_test.go runtime: new profile buffer implementation supporting label pointers 2017-02-23 19:47:23 +00:00
export_windows_test.go runtime: revert "do not call timeBeginPeriod on windows" 2016-04-09 16:11:41 +00:00
extern.go runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
fastlog2_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
fastlog2.go all: fix misspellings 2017-01-07 16:53:25 +00:00
fastlog2table.go
funcdata.h cmd/compile,link: generate PC-value tables with inlining information 2017-03-03 21:29:30 +00:00
futex_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
gc_test.go cmd/compile: do more type conversion inline 2016-11-02 21:33:03 +00:00
gcinfo_test.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
go_tls.h all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
HACKING.md runtime: expand HACKING.md 2017-01-06 18:30:36 +00:00
hash32.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
hash64.go runtime: add s390x support (modified files only) 2016-04-06 04:25:06 +00:00
hash_test.go runtime: remove TestCollisions from -short 2016-09-24 03:10:13 +00:00
hashmap_fast.go runtime: limit the number of map overflow buckets 2016-09-13 17:53:32 +00:00
hashmap.go runtime: delay marking maps as writing until after first alg call 2017-03-02 17:38:30 +00:00
heapdump.go time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
iface_test.go cmd/compile, runtime: specialize convT2x, don't alloc for zero vals 2017-02-28 19:23:33 +00:00
iface.go cmd/compile, runtime: specialize convT2x, don't alloc for zero vals 2017-02-28 19:23:33 +00:00
lfstack_32bit.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
lfstack_64bit.go runtime: merge lfstack_amd64.go into lfstack_64bit.go 2016-04-11 06:18:52 +00:00
lfstack_test.go
lfstack.go runtime: fix stale comment in lfstack 2016-06-16 19:45:33 +00:00
lock_futex.go runtime: find a home for orphaned comments 2016-04-14 18:34:09 +00:00
lock_sema.go all: single space after period. 2016-03-02 00:13:47 +00:00
Makefile
malloc_test.go runtime: add number of forced GCs to MemStats 2016-12-07 20:59:16 +00:00
malloc.go runtime: make fastrand to generate 32bit values 2017-02-13 20:22:02 +00:00
map_test.go all: sprinkle t.Parallel on some slow tests 2016-11-04 16:56:57 +00:00
mapspeed_test.go
mbarrier.go runtime: new profile buffer implementation supporting label pointers 2017-02-23 19:47:23 +00:00
mbitmap.go runtime: simplify sweep allocation counting 2017-03-03 17:02:16 +00:00
mcache.go runtime: make fixalloc zero allocations on reuse 2016-10-28 18:20:23 +00:00
mcentral.go runtime: mark several types go:notinheap 2016-10-15 17:58:20 +00:00
mem_bsd.go runtime: eliminate unnecessary type conversions 2016-03-07 20:53:27 +00:00
mem_darwin.go runtime: eliminate unnecessary type conversions 2016-03-07 20:53:27 +00:00
mem_linux.go runtime: don't hard-code physical page size 2016-09-06 21:05:53 +00:00
mem_plan9.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
mem_windows.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
memclr_386.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_amd64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_arm64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_arm.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_mips64x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
memclr_plan9_386.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_plan9_amd64.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_ppc64x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memclr_s390x.s runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
memmove_386.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_amd64.s runtime: amd64, use 4-byte ops for memmove of 4 bytes 2017-01-23 19:39:22 +00:00
memmove_arm64.s
memmove_arm.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_linux_amd64_test.go all: sprinkle t.Parallel on some slow tests 2016-11-04 16:56:57 +00:00
memmove_mips64x.s
memmove_mipsx.s runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
memmove_nacl_amd64p32.s all: single space after period. 2016-03-02 00:13:47 +00:00
memmove_plan9_386.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_plan9_amd64.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
memmove_ppc64x.s runtime: improve memmove performance ppc64,ppc64le 2016-04-13 15:27:59 +00:00
memmove_s390x.s runtime: add s390x support (new files and lfstack_64bit.go modifications) 2016-04-07 18:56:54 +00:00
memmove_test.go runtime: amd64, use 4-byte ops for memmove of 4 bytes 2017-01-23 19:39:22 +00:00
mfinal_test.go
mfinal.go runtime: don't rescan finalizers queue during mark termination 2017-03-03 17:02:14 +00:00
mfixalloc.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
mgc.go sync: make Mutex more fair 2017-02-17 17:24:59 +00:00
mgcmark.go runtime: don't rescan finalizers queue during mark termination 2017-03-03 17:02:14 +00:00
mgcsweep.go runtime: simplify sweep allocation counting 2017-03-03 17:02:16 +00:00
mgcsweepbuf.go runtime: make markrootSpans time proportional to in-use spans 2016-10-25 22:32:59 +00:00
mgcwork.go runtime: remove wbufptr 2017-03-03 17:02:12 +00:00
mheap.go runtime: clarify access to mheap_.busy 2017-03-03 17:02:18 +00:00
mkduff.go runtime: update mkduff legacy comments 2016-10-12 14:51:50 +00:00
mkfastlog2table.go
mknacl.sh all: make copyright headers consistent with one space after period 2016-05-02 13:43:18 +00:00
mksizeclasses.go runtime: add table of size classes in a comment 2017-01-08 00:01:30 +00:00
mmap.go runtime: find a home for orphaned comments 2016-04-14 18:34:09 +00:00
mprof.go runtime: ensure elapsed cycles are not negative 2016-10-28 22:14:10 +00:00
msan0.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
msan_amd64.s runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
msan.go runtime: check for nil g and m in msanread 2017-01-19 23:06:54 +00:00
msize.go runtime: compute size classes statically 2016-10-30 03:48:49 +00:00
mstats.go time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
net_plan9.go net: refactor poller into new internal/poll package 2017-02-13 18:36:28 +00:00
netpoll_epoll.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_kqueue.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_nacl.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_solaris.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_stub.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll_windows.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
netpoll.go os: use poller for file I/O 2017-02-15 19:31:55 +00:00
noasm.go all: fix assembly vet issues 2016-08-25 18:52:31 +00:00
norace_linux_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
norace_test.go all: use cannot instead of can not 2016-02-21 15:35:50 +00:00
os2_freebsd.go
os2_nacl.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
os2_openbsd.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
os2_plan9.go
os2_solaris.go
os3_plan9.go runtime: enable/disable SIGPROF if needed when profiling 2017-02-09 18:53:34 +00:00
os3_solaris.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
os_android.go
os_darwin_arm64.go runtime: rename fastrand1 to fastrand 2016-08-30 23:59:21 +00:00
os_darwin_arm.go runtime: rename fastrand1 to fastrand 2016-08-30 23:59:21 +00:00
os_darwin.go runtime: os.Executable runtime support for Darwin 2016-11-07 20:18:36 +00:00
os_dragonfly.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
os_freebsd_arm.go runtime: rename fastrand1 to fastrand 2016-08-30 23:59:21 +00:00
os_freebsd.go runtime: sleep on CLOCK_MONOTONIC in futexsleep1 on freebsd 2016-10-01 01:25:21 +00:00
os_linux_arm64.go runtime: rename fastrand1 to fastrand 2016-08-30 23:59:21 +00:00
os_linux_arm.go runtime: skip floating point hardware check on Android 2016-12-22 19:31:15 +00:00
os_linux_be64.go runtime: fix sigset type for ppc64 big-endian GNU/Linux 2016-10-06 22:24:40 +00:00
os_linux_generic.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_mips64x.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_noauxv.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
os_linux_ppc64x.go runtime: get ppc64x ISA level and hardware capabilities from HWCAP/HWCAP2 2016-11-01 13:41:04 +00:00
os_linux_s390x.go runtime: get s390x vector facility availability from AT_HWCAP 2016-10-19 21:50:13 +00:00
os_linux.go runtime: check sched_getaffinity return value 2017-01-03 22:35:42 +00:00
os_nacl_arm.go runtime: rename fastrand1 to fastrand 2016-08-30 23:59:21 +00:00
os_nacl.go runtime: enable/disable SIGPROF if needed when profiling 2017-02-09 18:53:34 +00:00
os_netbsd_386.go os: consolidate os{1,2}_*.go files 2016-04-06 05:04:47 +00:00
os_netbsd_amd64.go os: consolidate os{1,2}_*.go files 2016-04-06 05:04:47 +00:00
os_netbsd_arm.go runtime: rename fastrand1 to fastrand 2016-08-30 23:59:21 +00:00
os_netbsd.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
os_openbsd_arm.go runtime: rename fastrand1 to fastrand 2016-08-30 23:59:21 +00:00
os_openbsd.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
os_plan9_arm.go runtime: rename fastrand1 to fastrand 2016-08-30 23:59:21 +00:00
os_plan9.go net: implement asynchonous cancelable I/O on Plan 9 2016-11-12 05:44:36 +00:00
os_solaris.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
os_windows.go runtime: enable/disable SIGPROF if needed when profiling 2017-02-09 18:53:34 +00:00
panic.go runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
plugin.go cmd/compile: optimize non-empty-interface type conversions 2017-02-13 18:16:31 +00:00
print.go runtime: include pre-panic/throw logs in core dumps 2016-11-11 21:29:53 +00:00
proc_runtime_test.go runtime: improve randomized stealing logic 2016-03-25 11:00:48 +00:00
proc_test.go runtime: fix goroutine priority elevation 2016-05-19 18:18:13 +00:00
proc.go runtime/pprof: use new profile buffers for CPU profiling 2017-02-24 17:01:47 +00:00
profbuf_test.go runtime: new profile buffer implementation supporting label pointers 2017-02-23 19:47:23 +00:00
profbuf.go runtime: new profile buffer implementation supporting label pointers 2017-02-23 19:47:23 +00:00
proflabel.go runtime: add definitions for SetGoroutineLabels and Do 2017-02-06 20:29:37 +00:00
race0.go runtime: per-P contexts for race detector 2016-05-03 11:00:43 +00:00
race_amd64.s runtime: fix race atomic operations on external memory 2016-06-29 15:30:54 +00:00
race.go runtime: remove unused RaceSemacquire declaration 2017-02-27 20:15:51 +00:00
rand_test.go runtime: speed up fastrand() % n 2017-02-14 00:01:22 +00:00
rdebug.go runtime: simplify setPanicOnFault slightly 2016-04-13 06:14:06 +00:00
rt0_android_386.s
rt0_android_amd64.s runtime: fall back to /proc/self/auxv in Android libs 2016-11-29 15:27:53 +00:00
rt0_android_arm64.s runtime: fall back to /proc/self/auxv in Android libs 2016-11-29 15:27:53 +00:00
rt0_android_arm.s runtime: fall back to /proc/self/auxv in Android libs 2016-11-29 15:27:53 +00:00
rt0_darwin_386.s runtime: for c-archive/c-shared, install signal handlers synchronously 2016-01-09 00:58:38 +00:00
rt0_darwin_amd64.s runtime: align C library startup calls on amd64 2016-05-25 23:16:46 +00:00
rt0_darwin_arm64.s runtime, runtime/cgo: save callee-saved FP registers on arm64 2016-03-25 23:04:44 +00:00
rt0_darwin_arm.s runtime,runtime/cgo: save callee-saved FP register on arm 2016-05-25 06:54:28 +00:00
rt0_dragonfly_amd64.s
rt0_freebsd_386.s
rt0_freebsd_amd64.s
rt0_freebsd_arm.s
rt0_linux_386.s runtime, syscall: switch linux/386 to use int 0x80 2016-02-24 02:07:17 +00:00
rt0_linux_amd64.s runtime: make stack 16-byte aligned for external code in _rt0_amd64_linux_lib 2016-08-05 23:56:07 +00:00
rt0_linux_arm64.s runtime, runtime/cgo: save callee-saved FP registers on arm64 2016-03-25 23:04:44 +00:00
rt0_linux_arm.s runtime,runtime/cgo: save callee-saved FP register on arm 2016-05-25 06:54:28 +00:00
rt0_linux_mips64x.s cmd/link, runtime: add external linking support for linux/mips64x 2016-05-01 02:38:37 +00:00
rt0_linux_mipsx.s runtime: add cgo support for GOARCH=mips{,le} 2016-12-14 23:52:33 +00:00
rt0_linux_ppc64.s
rt0_linux_ppc64le.s runtime: add library startup support for ppc64le 2016-05-26 03:31:59 +00:00
rt0_linux_s390x.s runtime: add s390x support (new files and lfstack_64bit.go modifications) 2016-04-07 18:56:54 +00:00
rt0_nacl_386.s
rt0_nacl_amd64p32.s
rt0_nacl_arm.s
rt0_netbsd_386.s
rt0_netbsd_amd64.s
rt0_netbsd_arm.s
rt0_openbsd_386.s
rt0_openbsd_amd64.s
rt0_openbsd_arm.s
rt0_plan9_386.s
rt0_plan9_amd64.s
rt0_plan9_arm.s runtime: new files for plan9_arm support 2016-03-07 16:25:48 +00:00
rt0_solaris_amd64.s
rt0_windows_386.s cmd/go: fix -buildmode=c-archive should work on windows 2016-04-04 03:38:25 +00:00
rt0_windows_amd64.s cmd/go: fix -buildmode=c-archive should work on windows 2016-04-04 03:38:25 +00:00
runtime1.go runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
runtime2.go runtime: do not allocate on every time.Sleep 2017-02-24 15:34:01 +00:00
runtime_linux_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
runtime_mmap_test.go runtime: fetch physical page size from the OS 2016-09-06 21:05:50 +00:00
runtime_test.go runtime: check that Version does not contain \r \n 2016-12-05 16:49:53 +00:00
runtime_unix_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
runtime-gdb_test.go runtime: skip flaky TestGdbPythonCgo on MIPS 2017-02-02 21:45:42 +00:00
runtime-gdb.py runtime: set $sp before $pc in gdb python script 2016-06-09 20:02:59 +00:00
runtime-lldb_test.go cmd/link: put text at address 0x1000000 on darwin/amd64 2016-10-28 20:17:53 +00:00
runtime.go syscall: make Getpagesize return page size from runtime 2016-09-06 21:05:55 +00:00
select.go runtime: speed up fastrand() % n 2017-02-14 00:01:22 +00:00
sema.go sync: make Mutex more fair 2017-02-17 17:24:59 +00:00
sigaction_linux.go runtime/cgo: use libc for sigaction syscalls when possible 2016-11-16 05:38:38 +00:00
signal_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_amd64x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_arm64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_arm64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_darwin.go runtime: unify sigtrampgo 2016-09-26 17:22:42 +00:00
signal_dragonfly_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_dragonfly.go runtime: don't always unblock all signals on dragonfly, freebsd and openbsd 2016-04-15 21:20:45 +00:00
signal_freebsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_freebsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_freebsd_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_freebsd.go runtime: unify sigtrampgo 2016-09-26 17:22:42 +00:00
signal_linux_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_arm64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_mips64x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
signal_linux_ppc64x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_linux_s390x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_mips64x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
signal_nacl_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_nacl_amd64p32.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_nacl_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_nacl.go
signal_netbsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_netbsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_netbsd_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_netbsd.go
signal_openbsd_386.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_openbsd_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_openbsd_arm.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_openbsd.go runtime: unify sigtrampgo 2016-09-26 17:22:42 +00:00
signal_plan9.go runtime: signal handling support for plan9_arm 2016-03-07 16:25:17 +00:00
signal_ppc64x.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_sighandler.go runtime: print sigcode on signal crash 2016-10-27 17:46:01 +00:00
signal_solaris_amd64.go runtime: record current PC for SIGPROF on non-Go thread 2016-10-11 12:56:15 +00:00
signal_solaris.go runtime: treat SIGSTOP on Solaris as we do on other systems 2016-11-01 20:02:40 +00:00
signal_unix.go runtime: remove g.stackAlloc 2017-02-14 15:52:56 +00:00
signal_windows.go runtime: minor simplifications to signal code 2016-09-28 13:12:47 +00:00
sigqueue_plan9.go all: single space after period. 2016-03-02 00:13:47 +00:00
sigqueue.go runtime: improve last ditch signal forwarding for Unix libraries 2016-03-24 19:34:17 +00:00
sigtab_linux_generic.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
sigtab_linux_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
sizeclasses.go runtime: add table of size classes in a comment 2017-01-08 00:01:30 +00:00
slice.go runtime, cmd/compile: rename memclr -> memclrNoHeapPointers 2016-10-28 18:20:33 +00:00
softfloat64_test.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
softfloat64.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
softfloat_arm.go [dev.ssa] cmd/internal/obj, etc.: add and use NEGF, NEGD instructions on ARM 2016-07-20 18:15:37 +00:00
sqrt_test.go
sqrt.go all: single space after period. 2016-03-02 00:13:47 +00:00
stack_test.go runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
stack.go runtime: remove g.stackAlloc 2017-02-14 15:52:56 +00:00
string_test.go runtime: improve atoi implementation 2016-11-01 14:04:39 +00:00
string.go runtime: improve atoi implementation 2016-11-01 14:04:39 +00:00
stubs2.go
stubs32.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
stubs_android.go
stubs_asm.go all: fix assembly vet issues 2016-08-25 18:52:31 +00:00
stubs.go runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
symtab_test.go
symtab.go cmd/compile,link: generate PC-value tables with inlining information 2017-03-03 21:29:30 +00:00
sys_arm64.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_arm.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_darwin_386.s time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
sys_darwin_amd64.s time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
sys_darwin_arm64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_darwin_arm.s runtime: update assembly var names after monotonic time changes 2017-02-21 18:42:05 +00:00
sys_dragonfly_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_freebsd_386.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_freebsd_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_freebsd_arm.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_linux_386.s runtime: update assembly var names after monotonic time changes 2017-02-21 18:42:05 +00:00
sys_linux_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_linux_arm64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_linux_arm.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_linux_mips64x.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_linux_mipsx.s runtime: use standard linux/mipsx clone variable names 2017-02-21 18:42:38 +00:00
sys_linux_ppc64x.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_linux_s390x.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_mips64x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_mipsx.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
sys_nacl_386.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_nacl_amd64p32.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_nacl_arm.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_netbsd_386.s runtime: update assembly var names after monotonic time changes 2017-02-21 18:42:05 +00:00
sys_netbsd_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_netbsd_arm.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_nonppc64x.go
sys_openbsd_386.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_openbsd_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_openbsd_arm.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_plan9_386.s runtime: fix some assembly offset names 2017-02-14 02:09:48 +00:00
sys_plan9_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_plan9_arm.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_ppc64x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_s390x.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
sys_solaris_amd64.s time: record monotonic clock reading in time.Now, for more accurate comparisons 2017-02-03 19:04:52 +00:00
sys_windows_386.s runtime: update assembly var names after monotonic time changes 2017-02-21 18:42:05 +00:00
sys_windows_amd64.s time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
sys_x86.go runtime, cmd/internal/obj: get rid of rewindmorestack 2016-10-05 18:19:46 +00:00
syscall2_solaris.go
syscall_nacl.h
syscall_solaris.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
syscall_windows_test.go runtime: pass windows float syscall args via XMM 2016-10-28 13:13:08 +00:00
syscall_windows.go runtime, syscall: only search for Windows DLLs in the System32 directory 2016-04-01 22:55:36 +00:00
textflag.h cmd/compile: track reflect.Type.Method in deadcode 2016-03-11 21:19:20 +00:00
time.go runtime: do not allocate on every time.Sleep 2017-02-24 15:34:01 +00:00
timeasm.go time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
timestub.go time: optimize Now on darwin, windows 2017-02-09 14:45:16 +00:00
tls_arm64.h
tls_arm64.s
tls_arm.s all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tls_mips64x.s runtime: add linux/mips64x cgo support 2016-05-04 16:41:10 +00:00
tls_mipsx.s runtime: add cgo support for GOARCH=mips{,le} 2016-12-14 23:52:33 +00:00
tls_ppc64x.s all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
tls_s390x.s runtime: add s390x support (new files and lfstack_64bit.go modifications) 2016-04-07 18:56:54 +00:00
trace.go sync: make Mutex more fair 2017-02-17 17:24:59 +00:00
traceback.go runtime: remove stack barriers 2017-02-14 15:52:54 +00:00
type.go [dev.typealias] cmd/compile, reflect: fix struct field names for embedded byte, rune 2017-01-25 18:57:20 +00:00
typekind.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
unaligned1.go runtime: add s390x support (modified files only) 2016-04-06 04:25:06 +00:00
unaligned2.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
utf8.go runtime: speed up non-ASCII rune decoding 2016-10-17 11:25:22 +00:00
vdso_linux_amd64.go runtime: common handling of _AT_RANDOM auxv 2016-04-16 21:42:31 +00:00
vdso_none.go runtime: os.Executable runtime support for Darwin 2016-11-07 20:18:36 +00:00
vlop_386.s all: fix obsolete inferno-os links 2016-08-29 04:54:42 +00:00
vlop_arm_test.go runtime: arm5, fix large-offset floating-point stores 2016-04-25 22:33:33 +00:00
vlop_arm.s cmd/link: insert trampolines for too-far jumps on ARM 2016-10-11 13:35:33 +00:00
vlrt.go runtime: add support files for linux/mips{,le} port 2016-11-15 21:49:01 +00:00
wincallback.go all: make copyright headers consistent with one space after period 2016-03-01 23:34:33 +00:00
write_err_android.go runtime: update android time_now call 2017-02-08 02:56:25 +00:00
write_err.go
zcallback_windows.go
zcallback_windows.s