runtime: Remove undefined references to runtime_race*.
authorIan Lance Taylor <ian@gcc.gnu.org>
Tue, 23 Dec 2014 20:33:53 +0000 (20:33 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Tue, 23 Dec 2014 20:33:53 +0000 (20:33 +0000)
From-SVN: r219049

libgo/runtime/chan.goc
libgo/runtime/malloc.goc
libgo/runtime/mgc0.c
libgo/runtime/proc.c
libgo/runtime/race.h [deleted file]
libgo/runtime/string.goc
libgo/runtime/time.goc

index b8038d41c26a2374aa62d337324eba623f941da9..0cc823d8ac7c955bc8b9b5add8fafe32c0a0c922 100644 (file)
@@ -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));
-}
index c5e64c893b83e6fff5f7f936227e5bf11a61617f..f240ffbd8ee8d6b9483a13c3811502a8ea52ec47 100644 (file)
@@ -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)
index dda184568c7307b0306782cd031f304689b4765b..b09054c02cc2efcffe7ff366622a0462b6aacda7 100644 (file)
@@ -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++) {
index 03d1c1a271c0c341823b7e0bd794dd73b68ca6d9..6270142ea9f7894fdbb84bd7df5149615a28a9e5 100644 (file)
@@ -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 (file)
index 0f4718a..0000000
+++ /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);
index f656318d15cb6dbfa98c08e25cc121dbd9c558cc..0ad180b9832d70bbac11a47ac461d101322fa653 100644 (file)
@@ -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)
 
index 220629be496fc79de428489e5687057225988764..cb13bbf39a2169bd57ff63a91eb20fc78d27be51 100644 (file)
@@ -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);