aboutsummaryrefslogtreecommitdiff
path: root/libgo/runtime/mprof.goc
AgeCommit message (Collapse)AuthorFilesLines
2016-10-14runtime: copy mprof code from Go 1.7 runtimeIan Lance Taylor1-564/+0
Also create a gccgo version of some of the traceback code in traceback_gccgo.go, replacing some code currently in C. This required modifying the compiler so that when compiling the runtime package a slice expression does not cause a local array variable to escape to the heap. Reviewed-on: https://go-review.googlesource.com/31230 From-SVN: r241189
2016-10-13runtime: copy mstats code from Go 1.7 runtimeIan Lance Taylor1-13/+13
This replaces mem.go and the C runtime_ReadMemStats function with the Go 1.7 mstats.go. The GCStats code is commented out for now. The corresponding gccgo code is in runtime/mgc0.c. The variables memstats and worldsema are shared between the Go code and the C code, but are not exported. To make this work, add temporary accessor functions acquireWorldsema, releaseWorldsema, getMstats (the latter known as mstats in the C code). Check the preemptoff field of m when allocating and when considering whether to start a GC. This works with the new stopTheWorld and startTheWorld functions in Go, which are essentially the Go 1.7 versions. Change the compiler to stack allocate closures when compiling the runtime package. Within the runtime packages closures do not escape. This is similar to what the gc compiler does, except that the gc compiler, when compiling the runtime package, gives an error if escape analysis shows that a closure does escape. I added this here because the Go version of ReadMemStats calls systemstack with a closure, and having that allocate memory was causing some tests that measure memory allocations to fail. Reviewed-on: https://go-review.googlesource.com/30972 From-SVN: r241124
2016-10-10runtime: copy print/println support from Go 1.7Ian Lance Taylor1-5/+7
Update the compiler to use the new names. Add calls to printlock and printunlock around print statements. Move expression evaluation before the call to printlock. Update g's writebuf field to a slice, and adjust C code accordingly. Reviewed-on: https://go-review.googlesource.com/30717 From-SVN: r240956
2016-08-30runtime: use -fgo-c-header to build C header fileIan Lance Taylor1-1/+1
Use the new -fgo-c-header option to build a header file for the Go runtime code in libgo/go/runtime, and use the new header file in the C runtime code in libgo/runtime. This will ensure that the Go code and C code share the same data structures as we convert the runtime from C to Go. The new file libgo/go/runtime/runtime2.go is copied from the Go 1.7 release, and then edited to remove unnecessary data structures and modify others for use with libgo. The new file libgo/go/runtime/mcache.go is an initial version of the same files in the Go 1.7 release, and will be replaced by the Go 1.7 file when we convert to the new memory allocator. The new file libgo/go/runtime/type.go describes the gccgo version of the reflection data structures, and replaces the Go 1.7 runtime file which describes the gc version of those structures. Using the new header file means changing a number of struct fields to use Go naming conventions (that is, no underscores) and to rename constants to have a leading underscore so that they are not exported from the Go package. These names were updated in the C code. The C code was also changed to drop the thread-local variable m, as was done some time ago in the gc sources. Now the m field is always accessed using g->m, where g is the single remaining thread-local variable. This in turn required some adjustments to set g->m correctly in all cases. Also pass the new -fgo-compiling-runtime option when compiling the runtime package, although that option doesn't do anything yet. Reviewed-on: https://go-review.googlesource.com/28051 From-SVN: r239872
2015-08-04runtime: initialize variable to avoid compiler warningIan Lance Taylor1-1/+1
Reviewed-on: https://go-review.googlesource.com/13095 From-SVN: r226543
2015-08-03re PR go/67101 (mprof.goc:408:5: error: calling ↵Ian Lance Taylor1-3/+1
‘__builtin_frame_address’ with a nonzero argument is unsafe [-Werror=frame-address]) PR go/67101 runtime: Remove call to __builtin_frame_address. __builtin_frame_address was only supposed to use nonzero arguments for debugging purposes. Calling it with nonzero arguments can have unpredictable results and uses are now marked unsafe when -Wframe-address is enabled. Reviewed-on: https://go-review.googlesource.com/13063 From-SVN: r226525
2014-07-19reflect, runtime: Use libffi closures to implement reflect.MakeFunc.Ian Lance Taylor1-3/+3
Keep using the existing 386 and amd64 code on those archs, since it is more efficient. From-SVN: r212853
2014-07-19libgo: Update to Go 1.3 release.Ian Lance Taylor1-58/+84
From-SVN: r212837
2014-06-06libgo: Merge to master revision 19184.Ian Lance Taylor1-146/+80
The next revision, 19185, renames several runtime files, and will be handled in a separate change. From-SVN: r211328
2014-06-04libgo: Merge from revision 18783:00cce3a34d7e of master library.Ian Lance Taylor1-2/+46
This revision was committed January 7, 2014. The next revision deleted runtime/mfinal.c. That will be done in a subsequent merge. This merge changes type descriptors to add a zero field, pointing to a zero value for that type. This is implemented as a common variable. * go-gcc.cc (Gcc_backend::implicit_variable): Add is_common and alignment parameters. Permit init parameter to be NULL. From-SVN: r211249
2013-11-06libgo: Update to October 24 version of master library.Ian Lance Taylor1-63/+21
From-SVN: r204466
2013-07-16libgo: Update to Go 1.1.1.Ian Lance Taylor1-11/+80
From-SVN: r200974
2013-01-30runtime: In backtraces, get inline functions, skip split-stack fns.Ian Lance Taylor1-16/+32
From-SVN: r195591
2013-01-24re PR go/46986 (Go is not supported on Darwin)Ian Lance Taylor1-1/+1
PR go/46986 all: prepend #__USER_LABEL_PREFIX__ to mangled Go symbols For old-fashioned Darwin. From-SVN: r195438
2012-12-22libgo: Update to revision 15193:6fdc1974457c of master library.Ian Lance Taylor1-11/+11
From-SVN: r194692
2012-11-21libgo: Update to current version of master library.Ian Lance Taylor1-2/+1
From-SVN: r193688
2012-10-23libgo: Update to current sources.Ian Lance Taylor1-45/+134
From-SVN: r192704
2012-05-24runtime: Make runtime.Stack actually work.Ian Lance Taylor1-13/+13
From-SVN: r187854
2012-05-17runtime: Print stack trace on panic or signal.Ian Lance Taylor1-4/+5
From-SVN: r187623
2012-03-07libgo: Implement and use runtime.Caller, runtime.Func.FileLine.Ian Lance Taylor1-4/+0
From-SVN: r185025
2012-03-02libgo: Update to weekly.2012-02-22 release.Ian Lance Taylor1-8/+121
From-SVN: r184819
2012-03-02libgo: Update to weekly.2012-02-14 release.Ian Lance Taylor1-1/+26
From-SVN: r184798
2012-01-13libgo: Update to weekly.2011-12-22.Ian Lance Taylor1-2/+0
From-SVN: r183150
2011-11-28runtime: Multiplex goroutines onto OS threads.Ian Lance Taylor1-17/+13
From-SVN: r181772
2011-11-22runtime: New lock/note implementation.Ian Lance Taylor1-6/+0
From-SVN: r181633
2011-10-26Update Go library to last weekly.Ian Lance Taylor1-0/+1
From-SVN: r180552
2011-09-16Update Go library to r60.Ian Lance Taylor1-1/+1
From-SVN: r178910
2011-03-16Update to current version of Go library (revision 94d654be2064).Ian Lance Taylor1-3/+3
From-SVN: r171076
2010-12-17Rework locking code to split stack much less.Ian Lance Taylor1-1/+7
From-SVN: r167973
2010-12-03Add Go frontend, libgo library, and Go testsuite.Ian Lance Taylor1-0/+299
gcc/: * gcc.c (default_compilers): Add entry for ".go". * common.opt: Add -static-libgo as a driver option. * doc/install.texi (Configuration): Mention libgo as an option for --enable-shared. Mention go as an option for --enable-languages. * doc/invoke.texi (Overall Options): Mention .go as a file name suffix. Mention go as a -x option. * doc/frontends.texi (G++ and GCC): Mention Go as a supported language. * doc/sourcebuild.texi (Top Level): Mention libgo. * doc/standards.texi (Standards): Add section on Go language. Move references for other languages into their own section. * doc/contrib.texi (Contributors): Mention that I contributed the Go frontend. gcc/testsuite/: * lib/go.exp: New file. * lib/go-dg.exp: New file. * lib/go-torture.exp: New file. * lib/target-supports.exp (check_compile): Match // Go. From-SVN: r167407