* libgo patch committed: Remove unnecessary Go <-> C functions
@ 2019-06-03 23:03 Ian Lance Taylor
0 siblings, 0 replies; only message in thread
From: Ian Lance Taylor @ 2019-06-03 23:03 UTC (permalink / raw)
To: gcc-patches, gofrontend-dev
[-- Attachment #1: Type: text/plain, Size: 224 bytes --]
This libgo patch removes some functions that were needed during the
transition of the runtime from C to Go, but are no longer necessary.
Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed
to mainline.
Ian
[-- Attachment #2: patch.txt --]
[-- Type: text/plain, Size: 5919 bytes --]
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE (revision 271883)
+++ gcc/go/gofrontend/MERGE (working copy)
@@ -1,4 +1,4 @@
-2e623bff8a5855bb6268c69bb04eb37cac8f2dc2
+95784e8eec75cfeb2363fb22b51085380e564af9
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.
Index: libgo/go/runtime/stubs.go
===================================================================
--- libgo/go/runtime/stubs.go (revision 271669)
+++ libgo/go/runtime/stubs.go (working copy)
@@ -310,13 +310,6 @@ func errno() int
func entersyscall()
func entersyscallblock()
-// For gccgo to call from C code, so that the C code and the Go code
-// can share the memstats variable for now.
-//go:linkname getMstats runtime.getMstats
-func getMstats() *mstats {
- return &memstats
-}
-
// Get signal trampoline, written in C.
func getSigtramp() uintptr
@@ -338,48 +331,12 @@ func dumpregs(*_siginfo_t, unsafe.Pointe
// Implemented in C for gccgo.
func setRandomNumber(uint32)
-// Temporary for gccgo until we port proc.go.
-//go:linkname getsched runtime.getsched
-func getsched() *schedt {
- return &sched
-}
-
-// Temporary for gccgo until we port proc.go.
-//go:linkname getCgoHasExtraM runtime.getCgoHasExtraM
-func getCgoHasExtraM() *bool {
- return &cgoHasExtraM
-}
-
-// Temporary for gccgo until we port proc.go.
-//go:linkname getAllP runtime.getAllP
-func getAllP() **p {
- return &allp[0]
-}
-
-// Temporary for gccgo until we port proc.go.
+// Called by gccgo's proc.c.
//go:linkname allocg runtime.allocg
func allocg() *g {
return new(g)
}
-// Temporary for gccgo until we port the garbage collector.
-//go:linkname getallglen runtime.getallglen
-func getallglen() uintptr {
- return allglen
-}
-
-// Temporary for gccgo until we port the garbage collector.
-//go:linkname getallg runtime.getallg
-func getallg(i int) *g {
- return allgs[i]
-}
-
-// Temporary for gccgo until we port the garbage collector.
-//go:linkname getallm runtime.getallm
-func getallm() *m {
- return allm
-}
-
// Throw and rethrow an exception.
func throwException()
func rethrowException()
@@ -388,13 +345,6 @@ func rethrowException()
// used by the stack unwinder.
func unwindExceptionSize() uintptr
-// Temporary for gccgo until C code no longer needs it.
-//go:nosplit
-//go:linkname getPanicking runtime.getPanicking
-func getPanicking() uint32 {
- return panicking
-}
-
// Called by C code to set the number of CPUs.
//go:linkname setncpu runtime.setncpu
func setncpu(n int32) {
@@ -409,18 +359,6 @@ func setpagesize(s uintptr) {
}
}
-// Called by C code during library initialization.
-//go:linkname runtime_m0 runtime.runtime_m0
-func runtime_m0() *m {
- return &m0
-}
-
-// Temporary for gccgo until we port mgc.go.
-//go:linkname runtime_g0 runtime.runtime_g0
-func runtime_g0() *g {
- return &g0
-}
-
const uintptrMask = 1<<(8*sys.PtrSize) - 1
type bitvector struct {
Index: libgo/runtime/go-libmain.c
===================================================================
--- libgo/runtime/go-libmain.c (revision 271669)
+++ libgo/runtime/go-libmain.c (working copy)
@@ -230,7 +230,6 @@ gostart (void *arg)
runtime_args (a->argc, (byte **) a->argv);
setncpu (getproccount ());
setpagesize (getpagesize ());
- runtime_sched = runtime_getsched();
runtime_schedinit ();
__go_go ((uintptr)(runtime_main), NULL);
runtime_mstart (runtime_m ());
Index: libgo/runtime/go-main.c
===================================================================
--- libgo/runtime/go-main.c (revision 271669)
+++ libgo/runtime/go-main.c (working copy)
@@ -54,7 +54,6 @@ main (int argc, char **argv)
runtime_args (argc, (byte **) argv);
setncpu (getproccount ());
setpagesize (getpagesize ());
- runtime_sched = runtime_getsched();
runtime_schedinit ();
__go_go ((uintptr)(runtime_main), NULL);
runtime_mstart (runtime_m ());
Index: libgo/runtime/proc.c
===================================================================
--- libgo/runtime/proc.c (revision 271818)
+++ libgo/runtime/proc.c (working copy)
@@ -378,8 +378,6 @@ runtime_mcall(FuncVal *fv)
extern G* allocg(void)
__asm__ (GOSYM_PREFIX "runtime.allocg");
-Sched* runtime_sched;
-
bool runtime_isarchive;
extern void kickoff(void)
@@ -888,11 +886,3 @@ resetNewG(G *newg, void **sp, uintptr *s
newg->gcnextsp2 = (uintptr)(newg->gcinitialsp2);
#endif
}
-
-// Return whether we are waiting for a GC. This gc toolchain uses
-// preemption instead.
-bool
-runtime_gcwaiting(void)
-{
- return runtime_sched->gcwaiting;
-}
Index: libgo/runtime/runtime.h
===================================================================
--- libgo/runtime/runtime.h (revision 271823)
+++ libgo/runtime/runtime.h (working copy)
@@ -115,11 +115,6 @@ extern M* runtime_m(void);
extern G* runtime_g(void)
__asm__(GOSYM_PREFIX "runtime.getg");
-extern M* runtime_m0(void)
- __asm__(GOSYM_PREFIX "runtime.runtime_m0");
-extern G* runtime_g0(void)
- __asm__(GOSYM_PREFIX "runtime.runtime_g0");
-
enum
{
true = 1,
@@ -196,15 +191,6 @@ void runtime_hashinit(void);
*/
extern uintptr* runtime_getZerobase(void)
__asm__(GOSYM_PREFIX "runtime.getZerobase");
-extern G* runtime_getallg(intgo)
- __asm__(GOSYM_PREFIX "runtime.getallg");
-extern uintptr runtime_getallglen(void)
- __asm__(GOSYM_PREFIX "runtime.getallglen");
-extern M* runtime_getallm(void)
- __asm__(GOSYM_PREFIX "runtime.getallm");
-extern Sched* runtime_sched;
-extern uint32 runtime_panicking(void)
- __asm__ (GOSYM_PREFIX "runtime.getPanicking");
extern bool runtime_isstarted;
extern bool runtime_isarchive;
@@ -447,7 +433,6 @@ int32 getproccount(void);
#define PREFETCH(p) __builtin_prefetch(p)
-bool runtime_gcwaiting(void);
void runtime_badsignal(int);
Defer* runtime_newdefer(void);
void runtime_freedefer(Defer*);
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2019-06-03 23:03 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-03 23:03 libgo patch committed: Remove unnecessary Go <-> C functions Ian Lance Taylor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).