From 5616197a18d371281fdc018d580ec4081e350a07 Mon Sep 17 00:00:00 2001 From: ian Date: Tue, 23 Dec 2014 20:33:53 +0000 Subject: [PATCH] runtime: Remove undefined references to runtime_race*. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@219049 138bc75d-0d04-0410-961f-82ee72b054a4 --- libgo/runtime/chan.goc | 73 ++---------------------------------------------- libgo/runtime/malloc.goc | 8 ------ libgo/runtime/mgc0.c | 3 -- libgo/runtime/proc.c | 8 ------ libgo/runtime/race.h | 34 ---------------------- libgo/runtime/string.goc | 1 - libgo/runtime/time.goc | 5 ---- 7 files changed, 2 insertions(+), 130 deletions(-) delete mode 100644 libgo/runtime/race.h diff --git a/libgo/runtime/chan.goc b/libgo/runtime/chan.goc index b8038d41c26..0cc823d8ac7 100644 --- a/libgo/runtime/chan.goc +++ b/libgo/runtime/chan.goc @@ -6,7 +6,6 @@ package runtime #include "runtime.h" #include "arch.h" #include "go-type.h" -#include "race.h" #include "malloc.h" #include "chan.h" @@ -15,7 +14,6 @@ uint32 runtime_Hchansize = sizeof(Hchan); static void dequeueg(WaitQ*); static SudoG* dequeue(WaitQ*); static void enqueue(WaitQ*, SudoG*); -static void racesync(Hchan*, SudoG*); static Hchan* makechan(ChanType *t, int64 hint) @@ -82,6 +80,7 @@ __go_new_channel_big(ChanType *t, uint64 hint) static bool chansend(ChanType *t, Hchan *c, byte *ep, bool block, void *pc) { + USED(pc); SudoG *sg; SudoG mysg; G* gp; @@ -90,9 +89,6 @@ chansend(ChanType *t, Hchan *c, byte *ep, bool block, void *pc) g = runtime_g(); - if(raceenabled) - runtime_racereadobjectpc(ep, t->__element_type, runtime_getcallerpc(&t), chansend); - if(c == nil) { USED(t); if(!block) @@ -116,8 +112,6 @@ chansend(ChanType *t, Hchan *c, byte *ep, bool block, void *pc) } runtime_lock(c); - if(raceenabled) - runtime_racereadpc(c, pc, chansend); if(c->closed) goto closed; @@ -126,8 +120,6 @@ chansend(ChanType *t, Hchan *c, byte *ep, bool block, void *pc) sg = dequeue(&c->recvq); if(sg != nil) { - if(raceenabled) - racesync(c, sg); runtime_unlock(c); gp = sg->g; @@ -183,11 +175,6 @@ asynch: goto asynch; } - if(raceenabled) { - runtime_raceacquire(chanbuf(c, c->sendx)); - runtime_racerelease(chanbuf(c, c->sendx)); - } - runtime_memmove(chanbuf(c, c->sendx), ep, c->elemsize); if(++c->sendx == c->dataqsiz) c->sendx = 0; @@ -225,8 +212,6 @@ chanrecv(ChanType *t, Hchan* c, byte *ep, bool block, bool *received) if(runtime_gcwaiting()) runtime_gosched(); - // raceenabled: don't need to check ep, as it is always on the stack. - if(debug) runtime_printf("chanrecv: chan=%p\n", c); @@ -256,8 +241,6 @@ chanrecv(ChanType *t, Hchan* c, byte *ep, bool block, bool *received) sg = dequeue(&c->sendq); if(sg != nil) { - if(raceenabled) - racesync(c, sg); runtime_unlock(c); if(ep != nil) @@ -319,11 +302,6 @@ asynch: goto asynch; } - if(raceenabled) { - runtime_raceacquire(chanbuf(c, c->recvx)); - runtime_racerelease(chanbuf(c, c->recvx)); - } - if(ep != nil) runtime_memmove(ep, chanbuf(c, c->recvx), c->elemsize); runtime_memclr(chanbuf(c, c->recvx), c->elemsize); @@ -352,8 +330,6 @@ closed: runtime_memclr(ep, c->elemsize); if(received != nil) *received = false; - if(raceenabled) - runtime_raceacquire(c); runtime_unlock(c); if(mysg.releasetime > 0) runtime_blockevent(mysg.releasetime - t0, 2); @@ -789,8 +765,6 @@ loop: break; case CaseSend: - if(raceenabled) - runtime_racereadpc(c, runtime_selectgo, chansend); if(c->closed) goto sclose; if(c->dataqsiz > 0) { @@ -874,24 +848,11 @@ loop: *cas->receivedp = true; } - if(raceenabled) { - if(cas->kind == CaseRecv && cas->sg.elem != nil) - runtime_racewriteobjectpc(cas->sg.elem, c->elemtype, selectgo, chanrecv); - else if(cas->kind == CaseSend) - runtime_racereadobjectpc(cas->sg.elem, c->elemtype, selectgo, chansend); - } - selunlock(sel); goto retc; asyncrecv: // can receive from buffer - if(raceenabled) { - if(cas->sg.elem != nil) - runtime_racewriteobjectpc(cas->sg.elem, c->elemtype, selectgo, chanrecv); - runtime_raceacquire(chanbuf(c, c->recvx)); - runtime_racerelease(chanbuf(c, c->recvx)); - } if(cas->receivedp != nil) *cas->receivedp = true; if(cas->sg.elem != nil) @@ -914,11 +875,6 @@ asyncrecv: asyncsend: // can send to buffer - if(raceenabled) { - runtime_raceacquire(chanbuf(c, c->sendx)); - runtime_racerelease(chanbuf(c, c->sendx)); - runtime_racereadobjectpc(cas->sg.elem, c->elemtype, selectgo, chansend); - } runtime_memmove(chanbuf(c, c->sendx), cas->sg.elem, c->elemsize); if(++c->sendx == c->dataqsiz) c->sendx = 0; @@ -937,11 +893,6 @@ asyncsend: syncrecv: // can receive from sleeping sender (sg) - if(raceenabled) { - if(cas->sg.elem != nil) - runtime_racewriteobjectpc(cas->sg.elem, c->elemtype, selectgo, chanrecv); - racesync(c, sg); - } selunlock(sel); if(debug) runtime_printf("syncrecv: sel=%p c=%p o=%d\n", sel, c, o); @@ -963,16 +914,10 @@ rclose: *cas->receivedp = false; if(cas->sg.elem != nil) runtime_memclr(cas->sg.elem, c->elemsize); - if(raceenabled) - runtime_raceacquire(c); goto retc; syncsend: // can send to sleeping receiver (sg) - if(raceenabled) { - runtime_racereadobjectpc(cas->sg.elem, c->elemtype, selectgo, chansend); - racesync(c, sg); - } selunlock(sel); if(debug) runtime_printf("syncsend: sel=%p c=%p o=%d\n", sel, c, o); @@ -1062,6 +1007,7 @@ func reflect.chanclose(c *Hchan) { static void closechan(Hchan *c, void *pc) { + USED(pc); SudoG *sg; G* gp; @@ -1076,12 +1022,6 @@ closechan(Hchan *c, void *pc) runtime_unlock(c); runtime_panicstring("close of closed channel"); } - - if(raceenabled) { - runtime_racewritepc(c, pc, runtime_closechan); - runtime_racerelease(c); - } - c->closed = true; // release all readers @@ -1194,12 +1134,3 @@ enqueue(WaitQ *q, SudoG *sgp) q->last->link = sgp; q->last = sgp; } - -static void -racesync(Hchan *c, SudoG *sg) -{ - runtime_racerelease(chanbuf(c, 0)); - runtime_raceacquireg(sg->g, chanbuf(c, 0)); - runtime_racereleaseg(sg->g, chanbuf(c, 0)); - runtime_raceacquire(chanbuf(c, 0)); -} diff --git a/libgo/runtime/malloc.goc b/libgo/runtime/malloc.goc index c5e64c893b8..f240ffbd8ee 100644 --- a/libgo/runtime/malloc.goc +++ b/libgo/runtime/malloc.goc @@ -16,7 +16,6 @@ package runtime #include "malloc.h" #include "interface.h" #include "go-type.h" -#include "race.h" // Map gccgo field names to gc field names. // Eface aka __go_empty_interface. @@ -249,9 +248,6 @@ runtime_mallocgc(uintptr size, uintptr typ, uint32 flag) if(UseSpanType && !(flag & FlagNoScan) && typ != 0) settype(s, v, typ); - if(raceenabled) - runtime_racemalloc(v, size); - if(runtime_debug.allocfreetrace) runtime_tracealloc(v, size, typ); @@ -697,8 +693,6 @@ runtime_MHeap_SysAlloc(MHeap *h, uintptr n) h->arena_used += n; runtime_MHeap_MapBits(h); runtime_MHeap_MapSpans(h); - if(raceenabled) - runtime_racemapshadow(p, n); if(((uintptr)p & (PageSize-1)) != 0) runtime_throw("misrounded allocation in MHeap_SysAlloc"); @@ -732,8 +726,6 @@ runtime_MHeap_SysAlloc(MHeap *h, uintptr n) h->arena_end = p_end; runtime_MHeap_MapBits(h); runtime_MHeap_MapSpans(h); - if(raceenabled) - runtime_racemapshadow(p, n); } if(((uintptr)p & (PageSize-1)) != 0) diff --git a/libgo/runtime/mgc0.c b/libgo/runtime/mgc0.c index dda184568c7..b09054c02cc 100644 --- a/libgo/runtime/mgc0.c +++ b/libgo/runtime/mgc0.c @@ -57,7 +57,6 @@ #include "malloc.h" #include "mgc0.h" #include "chan.h" -#include "race.h" #include "go-type.h" // Map gccgo field names to gc field names. @@ -2507,8 +2506,6 @@ runfinq(void* dummy __attribute__ ((unused))) continue; } runtime_unlock(&finlock); - if(raceenabled) - runtime_racefingo(); for(; fb; fb=next) { next = fb->next; for(i=0; i<(uint32)fb->cnt; i++) { diff --git a/libgo/runtime/proc.c b/libgo/runtime/proc.c index 03d1c1a271c..6270142ea9f 100644 --- a/libgo/runtime/proc.c +++ b/libgo/runtime/proc.c @@ -18,7 +18,6 @@ #include "arch.h" #include "defs.h" #include "malloc.h" -#include "race.h" #include "go-type.h" #include "go-defer.h" @@ -462,9 +461,6 @@ runtime_schedinit(void) // Can not enable GC until all roots are registered. // mstats.enablegc = 1; - - // if(raceenabled) - // g->racectx = runtime_raceinit(); } extern void main_init(void) __asm__ (GOSYM_PREFIX "__go_init_main"); @@ -528,8 +524,6 @@ runtime_main(void* dummy __attribute__((unused))) mstats.enablegc = 1; main_main(); - if(raceenabled) - runtime_racefini(); // Make racy client program work: if panicking on // another goroutine at the same time as main returns, @@ -1848,8 +1842,6 @@ runtime_goexit(void) { if(g->status != Grunning) runtime_throw("bad g status"); - if(raceenabled) - runtime_racegoend(); runtime_mcall(goexit0); } diff --git a/libgo/runtime/race.h b/libgo/runtime/race.h deleted file mode 100644 index 0f4718aa8aa..00000000000 --- a/libgo/runtime/race.h +++ /dev/null @@ -1,34 +0,0 @@ -// Copyright 2012 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Definitions related to data race detection. - -#ifdef RACE -enum { raceenabled = 1 }; -#else -enum { raceenabled = 0 }; -#endif - -// Initialize race detection subsystem. -uintptr runtime_raceinit(void); -// Finalize race detection subsystem, does not return. -void runtime_racefini(void); - -void runtime_racemapshadow(void *addr, uintptr size); -void runtime_racemalloc(void *p, uintptr sz); -uintptr runtime_racegostart(void *pc); -void runtime_racegoend(void); -void runtime_racewritepc(void *addr, void *callpc, void *pc); -void runtime_racereadpc(void *addr, void *callpc, void *pc); -void runtime_racewriterangepc(void *addr, uintptr sz, void *callpc, void *pc); -void runtime_racereadrangepc(void *addr, uintptr sz, void *callpc, void *pc); -void runtime_racereadobjectpc(void *addr, const Type *t, void *callpc, void *pc); -void runtime_racewriteobjectpc(void *addr, const Type *t, void *callpc, void *pc); -void runtime_racefingo(void); -void runtime_raceacquire(void *addr); -void runtime_raceacquireg(G *gp, void *addr); -void runtime_racerelease(void *addr); -void runtime_racereleaseg(G *gp, void *addr); -void runtime_racereleasemerge(void *addr); -void runtime_racereleasemergeg(G *gp, void *addr); diff --git a/libgo/runtime/string.goc b/libgo/runtime/string.goc index f656318d15c..0ad180b9832 100644 --- a/libgo/runtime/string.goc +++ b/libgo/runtime/string.goc @@ -7,7 +7,6 @@ package runtime #include "arch.h" #include "malloc.h" #include "go-string.h" -#include "race.h" #define charntorune(pv, str, len) __go_get_rune(str, len, pv) diff --git a/libgo/runtime/time.goc b/libgo/runtime/time.goc index 220629be496..cb13bbf39a2 100644 --- a/libgo/runtime/time.goc +++ b/libgo/runtime/time.goc @@ -12,7 +12,6 @@ package time #include "defs.h" #include "arch.h" #include "malloc.h" -#include "race.h" enum { debug = 0, @@ -42,8 +41,6 @@ func Sleep(ns int64) { // startTimer adds t to the timer heap. func startTimer(t *Timer) { - if(raceenabled) - runtime_racerelease(t); runtime_addtimer(t); } @@ -237,8 +234,6 @@ timerproc(void* dummy __attribute__ ((unused))) f = (void*)t->fv->fn; arg = t->arg; runtime_unlock(&timers); - if(raceenabled) - runtime_raceacquire(t); __go_set_closure(fv); f(now, arg); -- 2.11.4.GIT