runtime: remove unnecessary functions calling between C and Go
authorIan Lance Taylor <ian@gcc.gnu.org>
Mon, 3 Jun 2019 23:02:43 +0000 (23:02 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Mon, 3 Jun 2019 23:02:43 +0000 (23:02 +0000)
    These functions were needed during the transition of the runtime from
    C to Go, but are no longer necessary.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/179879

From-SVN: r271890

gcc/go/gofrontend/MERGE
libgo/go/runtime/stubs.go
libgo/runtime/go-libmain.c
libgo/runtime/go-main.c
libgo/runtime/proc.c
libgo/runtime/runtime.h

index 5a97fabd52a1022ba3f9978c87a61347c75cb6ff..b1b36b2ac945461c491f6453610a3f67428e2b8f 100644 (file)
@@ -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 435cdf7ce9249d372cb2bf68459cc612d887269d..530997b292e00060121208bb8ff879f95aa30168 100644 (file)
@@ -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.Pointer)
 // 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 8b5bab09ac7683a38284fb5c5455f5f5cb25a3c3..f3795690e043140e7f54913200da15861e0205c8 100644 (file)
@@ -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 e9da8aca9cc0bab56a9442db7231a1d4dc5331f8..51ce15fdbc14d109c77e725c80f3244b95579596 100644 (file)
@@ -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 5ef421f862498e8a8315571fdf9d2bb53a348aa3..26125ccf1619bef02c8961e4c93902275edfb1d6 100644 (file)
@@ -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 *spsize)
   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 0aa8ff9974f82a9d0d6c386c7dc207abba8b405d..6da7bdf497f89ce0c87127f2dc2cc4f250a67894 100644 (file)
@@ -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*);