runtime: retype mheap.pagesSweptBasis as atomic.Uint64

[git-generate]
cd src/runtime
mv export_test.go export.go
GOROOT=$(dirname $(dirname $PWD)) rf '
  add mheap.pagesSweptBasis pagesSweptBasis_ atomic.Uint64 // pagesSwept to use as the origin of the sweep ratio
  ex {
    import "runtime/internal/atomic"

    var t mheap
    var v, w uint64
    var d int64

    t.pagesSweptBasis -> t.pagesSweptBasis_.Load()
    t.pagesSweptBasis = v -> t.pagesSweptBasis_.Store(v)
    atomic.Load64(&t.pagesSweptBasis) -> t.pagesSweptBasis_.Load()
    atomic.LoadAcq64(&t.pagesSweptBasis) -> t.pagesSweptBasis_.LoadAcquire()
    atomic.Store64(&t.pagesSweptBasis, v) -> t.pagesSweptBasis_.Store(v)
    atomic.StoreRel64(&t.pagesSweptBasis, v) -> t.pagesSweptBasis_.StoreRelease(v)
    atomic.Cas64(&t.pagesSweptBasis, v, w) -> t.pagesSweptBasis_.CompareAndSwap(v, w)
    atomic.Xchg64(&t.pagesSweptBasis, v) -> t.pagesSweptBasis_.Swap(v)
    atomic.Xadd64(&t.pagesSweptBasis, d) -> t.pagesSweptBasis_.Add(d)
  }
  rm mheap.pagesSweptBasis
  mv mheap.pagesSweptBasis_ mheap.pagesSweptBasis
'
mv export.go export_test.go

Change-Id: Id9438184b9bd06d96894c02376385bad45dee154
Reviewed-on: https://go-review.googlesource.com/c/go/+/356710
Reviewed-by: Austin Clements <austin@google.com>
Trust: Michael Knyszek <mknyszek@google.com>
diff --git a/src/runtime/mgcpacer.go b/src/runtime/mgcpacer.go
index f858ab0..55f3bc9 100644
--- a/src/runtime/mgcpacer.go
+++ b/src/runtime/mgcpacer.go
@@ -762,7 +762,7 @@
 			// Write pagesSweptBasis last, since this
 			// signals concurrent sweeps to recompute
 			// their debt.
-			atomic.Store64(&mheap_.pagesSweptBasis, pagesSwept)
+			mheap_.pagesSweptBasis.Store(pagesSwept)
 		}
 	}
 
diff --git a/src/runtime/mgcsweep.go b/src/runtime/mgcsweep.go
index 78d1f33..aedd6c3 100644
--- a/src/runtime/mgcsweep.go
+++ b/src/runtime/mgcsweep.go
@@ -719,7 +719,7 @@
 	}
 
 retry:
-	sweptBasis := atomic.Load64(&mheap_.pagesSweptBasis)
+	sweptBasis := mheap_.pagesSweptBasis.Load()
 
 	// Fix debt if necessary.
 	newHeapLive := uintptr(atomic.Load64(&gcController.heapLive)-mheap_.sweepHeapLiveBasis) + spanBytes
@@ -729,7 +729,7 @@
 			mheap_.sweepPagesPerByte = 0
 			break
 		}
-		if atomic.Load64(&mheap_.pagesSweptBasis) != sweptBasis {
+		if mheap_.pagesSweptBasis.Load() != sweptBasis {
 			// Sweep pacing changed. Recompute debt.
 			goto retry
 		}
diff --git a/src/runtime/mheap.go b/src/runtime/mheap.go
index 27f6077..90e5531 100644
--- a/src/runtime/mheap.go
+++ b/src/runtime/mheap.go
@@ -104,7 +104,7 @@
 	// progress has already been made.
 	pagesInUse         atomic.Uint64 // pages of spans in stats mSpanInUse
 	pagesSwept         atomic.Uint64 // pages swept this cycle
-	pagesSweptBasis    uint64        // pagesSwept to use as the origin of the sweep ratio; updated atomically
+	pagesSweptBasis    atomic.Uint64 // pagesSwept to use as the origin of the sweep ratio
 	sweepHeapLiveBasis uint64        // value of gcController.heapLive to use as the origin of sweep ratio; written with lock, read without
 	sweepPagesPerByte  float64       // proportional sweep ratio; written with lock, read without
 	// TODO(austin): pagesInUse should be a uintptr, but the 386