aboutsummaryrefslogtreecommitdiffstats
path: root/mps/code/trace.c
diff options
context:
space:
mode:
authorRichard Brooksby2012-08-21 22:48:11 +0100
committerRichard Brooksby2012-08-21 22:48:11 +0100
commit4009b8a55918aa368510106468e153039986fffc (patch)
tree46efac076c43461993fb5038fba438fea6e9fd49 /mps/code/trace.c
parentab85e6ff329c0237cbe3160f2e10b70ab9c0a182 (diff)
downloademacs-4009b8a55918aa368510106468e153039986fffc.tar.gz
emacs-4009b8a55918aa368510106468e153039986fffc.zip
Abolishing eventgen.pl. event structures are now expanded by the preprocessor.
Abolishing event formats. Each event now has its own structure. Event parameters are now written directly into the event buffer, rather than being copied twice. Copied from Perforce Change: 179010 ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code/trace.c')
-rw-r--r--mps/code/trace.c44
1 files changed, 22 insertions, 22 deletions
diff --git a/mps/code/trace.c b/mps/code/trace.c
index a12800d4dd9..c362a4809cf 100644
--- a/mps/code/trace.c
+++ b/mps/code/trace.c
@@ -531,7 +531,7 @@ static void traceFlip(Trace trace)
531 AVER(trace->state == TraceUNFLIPPED); 531 AVER(trace->state == TraceUNFLIPPED);
532 AVER(!TraceSetIsMember(arena->flippedTraces, trace)); 532 AVER(!TraceSetIsMember(arena->flippedTraces, trace));
533 533
534 EVENT_PP(TraceFlipBegin, trace, arena); 534 EVENT2(TraceFlipBegin, trace, arena);
535 535
536 traceFlipBuffers(ArenaGlobals(arena)); 536 traceFlipBuffers(ArenaGlobals(arena));
537 537
@@ -586,7 +586,7 @@ static void traceFlip(Trace trace)
586 trace->state = TraceFLIPPED; 586 trace->state = TraceFLIPPED;
587 arena->flippedTraces = TraceSetAdd(arena->flippedTraces, trace); 587 arena->flippedTraces = TraceSetAdd(arena->flippedTraces, trace);
588 588
589 EVENT_PP(TraceFlipEnd, trace, arena); 589 EVENT2(TraceFlipEnd, trace, arena);
590 590
591 ShieldResume(arena); 591 ShieldResume(arena);
592 592
@@ -736,7 +736,7 @@ void TraceDestroy(Trace trace)
736 ChainEndGC(trace->chain, trace); 736 ChainEndGC(trace->chain, trace);
737 } 737 }
738 738
739 STATISTIC_STAT(EVENT_PWWWWWWWWWWWW 739 STATISTIC_STAT(EVENT13
740 (TraceStatScan, trace, 740 (TraceStatScan, trace,
741 trace->rootScanCount, trace->rootScanSize, 741 trace->rootScanCount, trace->rootScanSize,
742 trace->rootCopiedSize, 742 trace->rootCopiedSize,
@@ -746,7 +746,7 @@ void TraceDestroy(Trace trace)
746 trace->singleCopiedSize, 746 trace->singleCopiedSize,
747 trace->readBarrierHitCount, trace->greySegMax, 747 trace->readBarrierHitCount, trace->greySegMax,
748 trace->pointlessScanCount)); 748 trace->pointlessScanCount));
749 STATISTIC_STAT(EVENT_PWWWWWWWWW 749 STATISTIC_STAT(EVENT10
750 (TraceStatFix, trace, 750 (TraceStatFix, trace,
751 trace->fixRefCount, trace->segRefCount, 751 trace->fixRefCount, trace->segRefCount,
752 trace->whiteSegRefCount, 752 trace->whiteSegRefCount,
@@ -754,14 +754,14 @@ void TraceDestroy(Trace trace)
754 trace->forwardedCount, trace->forwardedSize, 754 trace->forwardedCount, trace->forwardedSize,
755 trace->preservedInPlaceCount, 755 trace->preservedInPlaceCount,
756 trace->preservedInPlaceSize)); 756 trace->preservedInPlaceSize));
757 STATISTIC_STAT(EVENT_PWW 757 STATISTIC_STAT(EVENT3
758 (TraceStatReclaim, trace, 758 (TraceStatReclaim, trace,
759 trace->reclaimCount, trace->reclaimSize)); 759 trace->reclaimCount, trace->reclaimSize));
760 760
761 trace->sig = SigInvalid; 761 trace->sig = SigInvalid;
762 trace->arena->busyTraces = TraceSetDel(trace->arena->busyTraces, trace); 762 trace->arena->busyTraces = TraceSetDel(trace->arena->busyTraces, trace);
763 trace->arena->flippedTraces = TraceSetDel(trace->arena->flippedTraces, trace); 763 trace->arena->flippedTraces = TraceSetDel(trace->arena->flippedTraces, trace);
764 EVENT_P(TraceDestroy, trace); 764 EVENT1(TraceDestroy, trace);
765} 765}
766 766
767 767
@@ -775,7 +775,7 @@ static void traceReclaim(Trace trace)
775 775
776 AVER(trace->state == TraceRECLAIM); 776 AVER(trace->state == TraceRECLAIM);
777 777
778 EVENT_P(TraceReclaim, trace); 778 EVENT1(TraceReclaim, trace);
779 arena = trace->arena; 779 arena = trace->arena;
780 if(SegFirst(&seg, arena)) { 780 if(SegFirst(&seg, arena)) {
781 Addr base; 781 Addr base;
@@ -1034,7 +1034,7 @@ static Res traceScanSegRes(TraceSet ts, Rank rank, Arena arena, Seg seg)
1034 1034
1035 /* The reason for scanning a segment is that it's grey. */ 1035 /* The reason for scanning a segment is that it's grey. */
1036 AVER(TraceSetInter(ts, SegGrey(seg)) != TraceSetEMPTY); 1036 AVER(TraceSetInter(ts, SegGrey(seg)) != TraceSetEMPTY);
1037 EVENT_UUPP(TraceScanSeg, ts, rank, arena, seg); 1037 EVENT4(TraceScanSeg, ts, rank, arena, seg);
1038 1038
1039 white = traceSetWhiteUnion(ts, arena); 1039 white = traceSetWhiteUnion(ts, arena);
1040 1040
@@ -1140,7 +1140,7 @@ void TraceSegAccess(Arena arena, Seg seg, AccessSet mode)
1140 /* RefSetUNIV). */ 1140 /* RefSetUNIV). */
1141 AVER((mode & SegSM(seg) & AccessWRITE) == 0 || SegSummary(seg) != RefSetUNIV); 1141 AVER((mode & SegSM(seg) & AccessWRITE) == 0 || SegSummary(seg) != RefSetUNIV);
1142 1142
1143 EVENT_PPU(TraceAccess, arena, seg, mode); 1143 EVENT3(TraceAccess, arena, seg, mode);
1144 1144
1145 if((mode & SegSM(seg) & AccessREAD) != 0) { /* read barrier? */ 1145 if((mode & SegSM(seg) & AccessREAD) != 0) { /* read barrier? */
1146 /* Pick set of traces to scan for: */ 1146 /* Pick set of traces to scan for: */
@@ -1192,7 +1192,7 @@ Res TraceFix(ScanState ss, Ref *refIO)
1192 ref = *refIO; 1192 ref = *refIO;
1193 1193
1194 STATISTIC(++ss->fixRefCount); 1194 STATISTIC(++ss->fixRefCount);
1195 EVENT_PPAU(TraceFix, ss, refIO, ref, ss->rank); 1195 EVENT4(TraceFix, ss, refIO, ref, ss->rank);
1196 1196
1197 TRACT_OF_ADDR(&tract, ss->arena, ref); 1197 TRACT_OF_ADDR(&tract, ss->arena, ref);
1198 if(tract) { 1198 if(tract) {
@@ -1202,8 +1202,8 @@ Res TraceFix(ScanState ss, Ref *refIO)
1202 Res res; 1202 Res res;
1203 STATISTIC(++ss->segRefCount); 1203 STATISTIC(++ss->segRefCount);
1204 STATISTIC(++ss->whiteSegRefCount); 1204 STATISTIC(++ss->whiteSegRefCount);
1205 EVENT_P(TraceFixSeg, seg); 1205 EVENT1(TraceFixSeg, seg);
1206 EVENT_0(TraceFixWhite); 1206 EVENT0(TraceFixWhite);
1207 pool = TractPool(tract); 1207 pool = TractPool(tract);
1208 /* Could move the rank switch here from the class-specific */ 1208 /* Could move the rank switch here from the class-specific */
1209 /* fix methods. */ 1209 /* fix methods. */
@@ -1228,7 +1228,7 @@ Res TraceFix(ScanState ss, Ref *refIO)
1228 Seg seg; 1228 Seg seg;
1229 if(TRACT_SEG(&seg, tract)) { 1229 if(TRACT_SEG(&seg, tract)) {
1230 ++ss->segRefCount; 1230 ++ss->segRefCount;
1231 EVENT_P(TraceFixSeg, seg); 1231 EVENT1(TraceFixSeg, seg);
1232 } 1232 }
1233 }); 1233 });
1234 } 1234 }
@@ -1259,7 +1259,7 @@ Res TraceFixEmergency(ScanState ss, Ref *refIO)
1259 ref = *refIO; 1259 ref = *refIO;
1260 1260
1261 STATISTIC(++ss->fixRefCount); 1261 STATISTIC(++ss->fixRefCount);
1262 EVENT_PPAU(TraceFix, ss, refIO, ref, ss->rank); 1262 EVENT4(TraceFix, ss, refIO, ref, ss->rank);
1263 1263
1264 TRACT_OF_ADDR(&tract, ss->arena, ref); 1264 TRACT_OF_ADDR(&tract, ss->arena, ref);
1265 if(tract) { 1265 if(tract) {
@@ -1268,8 +1268,8 @@ Res TraceFixEmergency(ScanState ss, Ref *refIO)
1268 if(TRACT_SEG(&seg, tract)) { 1268 if(TRACT_SEG(&seg, tract)) {
1269 STATISTIC(++ss->segRefCount); 1269 STATISTIC(++ss->segRefCount);
1270 STATISTIC(++ss->whiteSegRefCount); 1270 STATISTIC(++ss->whiteSegRefCount);
1271 EVENT_P(TraceFixSeg, seg); 1271 EVENT1(TraceFixSeg, seg);
1272 EVENT_0(TraceFixWhite); 1272 EVENT0(TraceFixWhite);
1273 pool = TractPool(tract); 1273 pool = TractPool(tract);
1274 PoolFixEmergency(pool, ss, seg, refIO); 1274 PoolFixEmergency(pool, ss, seg, refIO);
1275 } 1275 }
@@ -1281,7 +1281,7 @@ Res TraceFixEmergency(ScanState ss, Ref *refIO)
1281 Seg seg; 1281 Seg seg;
1282 if(TRACT_SEG(&seg, tract)) { 1282 if(TRACT_SEG(&seg, tract)) {
1283 ++ss->segRefCount; 1283 ++ss->segRefCount;
1284 EVENT_P(TraceFixSeg, seg); 1284 EVENT1(TraceFixSeg, seg);
1285 } 1285 }
1286 }); 1286 });
1287 } 1287 }
@@ -1308,7 +1308,7 @@ static Res traceScanSingleRefRes(TraceSet ts, Rank rank, Arena arena,
1308 Res res; 1308 Res res;
1309 ScanStateStruct ss; 1309 ScanStateStruct ss;
1310 1310
1311 EVENT_UUPA(TraceScanSingleRef, ts, rank, arena, (Addr)refIO); 1311 EVENT4(TraceScanSingleRef, ts, rank, arena, (Addr)refIO);
1312 1312
1313 white = traceSetWhiteUnion(ts, arena); 1313 white = traceSetWhiteUnion(ts, arena);
1314 if(ZoneSetInter(SegSummary(seg), white) == ZoneSetEMPTY) { 1314 if(ZoneSetInter(SegSummary(seg), white) == ZoneSetEMPTY) {
@@ -1379,7 +1379,7 @@ Res TraceScanArea(ScanState ss, Addr *base, Addr *limit)
1379 AVER(limit != NULL); 1379 AVER(limit != NULL);
1380 AVER(base < limit); 1380 AVER(base < limit);
1381 1381
1382 EVENT_PPP(TraceScanArea, ss, base, limit); 1382 EVENT3(TraceScanArea, ss, base, limit);
1383 1383
1384 TRACE_SCAN_BEGIN(ss) { 1384 TRACE_SCAN_BEGIN(ss) {
1385 p = base; 1385 p = base;
@@ -1427,7 +1427,7 @@ Res TraceScanAreaMasked(ScanState ss, Addr *base, Addr *limit, Word mask)
1427 AVER(limit != NULL); 1427 AVER(limit != NULL);
1428 AVER(base < limit); 1428 AVER(base < limit);
1429 1429
1430 EVENT_PPP(TraceScanAreaTagged, ss, base, limit); 1430 EVENT3(TraceScanAreaTagged, ss, base, limit);
1431 1431
1432 TRACE_SCAN_BEGIN(ss) { 1432 TRACE_SCAN_BEGIN(ss) {
1433 p = base; 1433 p = base;
@@ -1652,7 +1652,7 @@ void TraceStart(Trace trace, double mortality, double finishingTime)
1652 res = RootsIterate(ArenaGlobals(arena), rootGrey, (void *)trace); 1652 res = RootsIterate(ArenaGlobals(arena), rootGrey, (void *)trace);
1653 AVER(res == ResOK); 1653 AVER(res == ResOK);
1654 1654
1655 STATISTIC_STAT(EVENT_PW(ArenaWriteFaults, arena, arena->writeBarrierHitCount)); 1655 STATISTIC_STAT(EVENT2(ArenaWriteFaults, arena, arena->writeBarrierHitCount));
1656 1656
1657 /* Calculate the rate of scanning. */ 1657 /* Calculate the rate of scanning. */
1658 { 1658 {
@@ -1672,7 +1672,7 @@ void TraceStart(Trace trace, double mortality, double finishingTime)
1672 1672
1673 /* @@ DIAG for rate of scanning here. */ 1673 /* @@ DIAG for rate of scanning here. */
1674 1674
1675 STATISTIC_STAT(EVENT_PWWWWDD(TraceStatCondemn, trace, 1675 STATISTIC_STAT(EVENT7(TraceStatCondemn, trace,
1676 trace->condemned, trace->notCondemned, 1676 trace->condemned, trace->notCondemned,
1677 trace->foundation, trace->rate, 1677 trace->foundation, trace->rate,
1678 mortality, finishingTime)); 1678 mortality, finishingTime));