diff options
| author | Richard Brooksby | 2012-08-21 22:48:11 +0100 |
|---|---|---|
| committer | Richard Brooksby | 2012-08-21 22:48:11 +0100 |
| commit | 4009b8a55918aa368510106468e153039986fffc (patch) | |
| tree | 46efac076c43461993fb5038fba438fea6e9fd49 /mps/code/trace.c | |
| parent | ab85e6ff329c0237cbe3160f2e10b70ab9c0a182 (diff) | |
| download | emacs-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.c | 44 |
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)); |