1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-20 12:40:56 -08:00
Commit graph

65 commits

Author SHA1 Message Date
David Lovemore
b4460043e6 Added more control over write barrier. in particular separated scans after a hit.
Copied from Perforce
 Change: 186988
 ServerID: perforce.ravenbrook.com
2014-08-27 11:21:18 +01:00
David Lovemore
46d723c9dc Added experimental control over write barrier eagerness.
The write barrier is only raised after three unnecessary scans.

Copied from Perforce
 Change: 186975
 ServerID: perforce.ravenbrook.com
2014-08-21 15:53:57 +01:00
David Lovemore
8c9353fe34 Add mps_key_arena_incremental option.
Avoid read and write barrier in non-incremental mode.
Add --non-incremental option to gcbench

Copied from Perforce
 Change: 186969
 ServerID: perforce.ravenbrook.com
2014-08-20 13:03:20 +01:00
Gareth Rees
8b012960dc Some assertions with && crept back in. split them up so that we get as much information as possible from an assertion failure.
Copied from Perforce
 Change: 186577
 ServerID: perforce.ravenbrook.com
2014-06-13 15:52:50 +01:00
Gareth Rees
a13a1aa1df Catch-up merge from master sources @186564 to branch/2014-06-11/grain.
Copied from Perforce
 Change: 186572
 ServerID: perforce.ravenbrook.com
2014-06-13 15:30:46 +01:00
Gareth Rees
9268a0adc8 Catch-up merge from master sources @186528 to branch/2014-04-15/mvffnoseg.
Copied from Perforce
 Change: 186534
 ServerID: perforce.ravenbrook.com
2014-06-12 15:59:39 +01:00
Gareth Rees
cb629746ea Catch-up merge from masters sources @186519 to branch/2014-04-17/describe.
Copied from Perforce
 Change: 186526
 ServerID: perforce.ravenbrook.com
2014-06-12 13:45:22 +01:00
Gareth Rees
bfb0b771dd Rename "arena alignment" to "arena grain size" to avoid confusion with ordinary structure alignment.
Copied from Perforce
 Change: 186503
 ServerID: perforce.ravenbrook.com
2014-06-11 17:13:03 +01:00
Gareth Rees
a08139899f Catch-up merge from master sources @186481 to branch/2014-04-15/mvffnoseg.
Copied from Perforce
 Change: 186484
 ServerID: perforce.ravenbrook.com
2014-06-11 12:42:58 +01:00
Gareth Rees
3f98a87c2e Remove unused pool class attributes.
Bring method descriptions up to date in pool class design.

Copied from Perforce
 Change: 186446
 ServerID: perforce.ravenbrook.com
2014-06-08 19:54:24 +01:00
Gareth Rees
06088f0fb7 Segfindaboveaddr is no longer used.
Copied from Perforce
 Change: 186200
 ServerID: perforce.ravenbrook.com
2014-05-19 20:20:09 +01:00
Gareth Rees
4d10bb418b Catch-up merge from master sources @186077 to branch/2014-04-23/awl.
Copied from Perforce
 Change: 186110
 ServerID: perforce.ravenbrook.com
2014-05-15 10:17:41 +01:00
Gareth Rees
7b5411c4f7 Catch-up merge from master sources @186035 to branch/2014-03-25/ansi.
Copied from Perforce
 Change: 186040
 ServerID: perforce.ravenbrook.com
2014-05-12 18:42:33 +01:00
Gareth Rees
5250959005 Fix problems identified in nb's review <https://info.ravenbrook.com/mail/2014/05/12/15-10-13/0/>.
Copied from Perforce
 Change: 186038
 ServerID: perforce.ravenbrook.com
2014-05-12 18:22:40 +01:00
Gareth Rees
30f37732a9 Catch-up merge from master sources @185999 to branch/2014-04-17/describe.
Copied from Perforce
 Change: 186003
 ServerID: perforce.ravenbrook.com
2014-05-11 18:33:02 +01:00
Gareth Rees
c77c91056d Consistent order stream, depth.
Copied from Perforce
 Change: 186001
 ServerID: perforce.ravenbrook.com
2014-05-11 18:30:23 +01:00
Gareth Rees
2493f121dc Correct indentation of describe output by passing depth parameter to describe functions and to writef.
Call Describe functions from test cases so that we get coverage.

Copied from Perforce
 Change: 186000
 ServerID: perforce.ravenbrook.com
2014-05-11 18:20:38 +01:00
Gareth Rees
3a6a9e1101 Fix compilation of seg.c.
1. "#ifdef CHECKLEVEL > CheckLevelMINIMAL" was bogus: the #ifdef should have been #if, but even then it would not be right, because in the CHECKLEVEL_DYNAMIC configuration, CHECKLEVEL is a variable rather than a preprocessor constant. So use the condition defined(AVER_AND_CHECK_ALL) instead.
2. The final CHECKL(addr == seg->limit) only makes sense if the loop was executed.
3. The variables used by the loop need to be inside the #if to avoid warnings about unused variables.
4. Add reference to the job from a comment.

Copied from Perforce
 Change: 185992
 ServerID: perforce.ravenbrook.com
2014-05-10 09:44:25 +01:00
David Lovemore
4c52e0390b Only include tract loop ion segcheck when check level > minimal.
This is to speed up SegCheck in HOT variety.

Copied from Perforce
 Change: 185971
 ServerID: perforce.ravenbrook.com
2014-05-06 12:19:06 +01:00
Gareth Rees
d1b44a4f05 Back out change 185626 (violates the design.mps.writef.snazzy).
Copied from Perforce
 Change: 185941
 ServerID: perforce.ravenbrook.com
2014-05-02 12:44:31 +01:00
Gareth Rees
2f4d1c8cd4 Catch-up merge from master sources to branch/2014-03-25/ansi.
Copied from Perforce
 Change: 185907
 ServerID: perforce.ravenbrook.com
2014-04-30 16:51:30 +01:00
Gareth Rees
0a4c4fcaa6 Fix problems identified by dl in <https://info.ravenbrook.com/mail/2014/04/30/12-47-23/0/>.
Copied from Perforce
 Change: 185897
 ServerID: perforce.ravenbrook.com
2014-04-30 15:24:26 +01:00
Gareth Rees
32416cc272 Better names for poolgen functions.
Accounting for segment splitting and merging.
Accounting for allocation and freeing in segsmss.

Copied from Perforce
 Change: 185894
 ServerID: perforce.ravenbrook.com
2014-04-30 13:49:26 +01:00
David Lovemore
70c0cb9a94 Rename bool(v) to boolof(v) to fix clash with the windows header file windows.h
Copied from Perforce
 Change: 185841
 ServerID: perforce.ravenbrook.com
2014-04-28 13:14:04 +01:00
Gareth Rees
6721c2b913 Correct indentation of describe output.
Copied from Perforce
 Change: 185626
 ServerID: perforce.ravenbrook.com
2014-04-17 13:36:42 +01:00
Gareth Rees
b512c97d84 Use x and x_none for x ∈ {lock, plinth, remembered_set, shield} to match the other settings (aver_and_check, event, statistics).
Copied from Perforce
 Change: 185580
 ServerID: perforce.ravenbrook.com
2014-04-16 10:48:21 +01:00
Gareth Rees
93a79ac8a6 Add -wconversion to the options for gcc. ensure that the mps builds.
Copied from Perforce
 Change: 185463
 ServerID: perforce.ravenbrook.com
2014-04-11 14:25:15 +01:00
Gareth Rees
a76ab7ce6b Catch-up merge from master sources to branch/2014-03-25/ansi.
Copied from Perforce
 Change: 185305
 ServerID: perforce.ravenbrook.com
2014-04-07 16:04:58 +01:00
Gareth Rees
d3d2795fce Improve control over checking:
1. Where Type is a pointer type with a signature, replace CHECKL(TypeCheck(val)) with CHECKD(Type, val).
2. Where Type is a pointer type with no signature, replace CHECKL(TypeCheck(val)) with CHECKD_NOSIG(Type, val).
3. Where Type is a pointer type with a signature, but the structure is not visible at point of checking, replace CHECKL(TypeCheck(val)) with CHECKD_NOSIG(Type, val). Reference <design/check/#.hidden-type>
4. Make BTCheck extern and use it where possible.
5. Replace AVER(TypeCheck(val)) with AVERT(Type, val).

Copied from Perforce
 Change: 185263
 ServerID: perforce.ravenbrook.com
2014-04-06 22:51:05 +01:00
Gareth Rees
9bb6b2f8be Tidy-up of attributes and pool classes:
* Bring design up to date.
* New function PoolHasAttr encapsulates attribute checking.
* Abstract classes are abstract and mustn't be checked.
* The dummy pool class in fotest needs a size.
* Abstract pool classes null out methods that they can't provide a generic implementation for, to force subclasses to provide one.
* New function PoolTrivFramePopPending provides a generic implementation of that method.
* Rename PoolNoFreeWalk to PoolTrivFreeWalk since it has NOOP rather than NOTREACHED.
* Check that AttrMOVINGGC implies AttrGC.
* Remove unimplemented attributes (BUF_RESERVE, BUF_ALLOC, INCR_RB, INCR_WB, PM)
* AMC now inherits from AMCZ instead of the other way round. This is simpler: AMC adds features to AMCZ rather than AMCZ taking features away (and not quite getting it right).
* Similarly, LO inherits from AbstractSegBufPoolClass + PoolClassMixInCollect so that it doesn't have to clear AttrSCAN and the scan methods.
* Fix bug in MFSCheck -- mustn't check unroundedUnitSize >= UNIT_MIN since small unit sizes are rounded up to UNIT_MIN.
* Don't see AttrFREE in MRG (since no free method is supplied).
* Check AttrSCAN systematically (in PoolScan and SegCheck) rather than opportunistically in TraceStart and TraceQuantum.

Copied from Perforce
 Change: 185231
 ServerID: perforce.ravenbrook.com
2014-04-04 17:05:08 +01:00
Gareth Rees
673eea41a0 Check classes after defining them.
Copied from Perforce
 Change: 185228
 ServerID: perforce.ravenbrook.com
2014-04-04 12:51:07 +01:00
Gareth Rees
84cd92ab89 Improve clarity of product configuration so that names more explicitly indicate what they do:
* CONFIG_POLL_NONE (because the user-visible consequence is that polling is no longer supported; was CONFIG_PROTECTION_NONE).
* DISABLE_LOCKS (was THREAD_SINGLE).
* DISABLE_SHIELD (was THREAD_SINGLE && PROTECTION_NONE)
* DISABLE_REMEMBERED_SET (was PROTECTION_NONE)
When the shield is disabled, ArenaLeave asserts that there are no busy traces, and ArenaPoll is a no-op.
By having functions implemented using the corresponding macro, we can avoid duplicated code, and avoid testing DISABLE_SHIELD in global.c.
Remove all remaining references to MPS_PROD_EPCORE.

Copied from Perforce
 Change: 185176
 ServerID: perforce.ravenbrook.com
2014-04-02 15:48:57 +01:00
Gareth Rees
4ef183e62a Mps compiles and runs using pelles c.
Merge code from Bruce Mitchener <https://github.com/Ravenbrook/mps-temporary/pull/2> and from RB <https://github.com/waywardmonkeys/mps-temporary/pull/1/files>.
Split call to EVENT_LIST so that event.c compiles.
Remove useless call to va_end in seg.c.

Copied from Perforce
 Change: 184948
 ServerID: perforce.ravenbrook.com
2014-03-21 18:28:39 +00:00
Richard Brooksby
56d48bbd1d iterating over segments using the pool and segment rings, rather than scanning the tract table, which may be full of irrelevant tracts, especially when non-gc pools are large. see <https://info.ravenbrook.com/mail/2014/01/25/12-16-09/0/>.
Copied from Perforce
 Change: 184120
 ServerID: perforce.ravenbrook.com
2014-01-25 15:33:10 +00:00
Richard Brooksby
62e3734297 Adding missing check on return value found by xcode analyzer.
Copied from Perforce
 Change: 182071
 ServerID: perforce.ravenbrook.com
2013-05-22 12:29:10 +01:00
Richard Brooksby
93fee75c50 Eliminating unnecessary use of varargs in segment split and merge functions.
Copied from Perforce
 Change: 181842
 ServerID: perforce.ravenbrook.com
2013-05-16 03:02:20 +01:00
Richard Brooksby
af44d1241f Replacing varargs passed to seginit with keyword argument list.
Copied from Perforce
 Change: 181679
 ServerID: perforce.ravenbrook.com
2013-05-09 17:34:01 +01:00
Gareth Rees
99bca8b5e2 Amc can't omit the guard "segrankset(seg) != ranksetempty" for calling segsetgrey, because amcz uses segments with an empty rank set.
It's OK to call SegSetGrey on a segment with an empty rank set so long as you are not actually setting it to be grey for any traces, so correct the AVER accordingly.

Copied from Perforce
 Change: 180236
 ServerID: perforce.ravenbrook.com
2012-11-01 17:21:57 +00:00
Richard Brooksby
cb8f0ea514 Removing unnecessary unused declarations since changelist 179690.
Copied from Perforce
 Change: 179691
 ServerID: perforce.ravenbrook.com
2012-09-25 23:34:20 +01:00
Richard Brooksby
85f3d6bbb4 Short-circuit the cases where we set the greyness or summary of a segment to the same as it was before in all cases, rather than just in a few restricted cases in amc.
This was the result of noticing a large number of SetSetGrey events that set the segment to the same greyness when scanning ambiguous references.

Copied from Perforce
 Change: 179567
 ServerID: perforce.ravenbrook.com
2012-09-19 20:04:41 +01:00
Richard Brooksby
6c887280e4 Fixing type puns discovered by gcc 4.2.1 on freebsd with -o3.
Copied from Perforce
 Change: 179356
 ServerID: perforce.ravenbrook.com
2012-09-07 22:03:41 +01:00
Richard Brooksby
e8d345149f Adding references to critical path design.
Fixing cast from external scan state structure to a PARENT, now that we're not punning the pointer any more.

Copied from Perforce
 Change: 179347
 ServerID: perforce.ravenbrook.com
2012-09-07 20:49:05 +01:00
Richard Brooksby
27c6706791 Merging branch/2012-08-21/diagnostic-telemetry.
Copied from Perforce
 Change: 179289
 ServerID: perforce.ravenbrook.com
2012-09-05 23:45:31 +01:00
Richard Brooksby
89a685f164 Renaming some check* macros with more accurate names, making remaining check* macros similar in function.
Copied from Perforce
 Change: 179155
 ServerID: perforce.ravenbrook.com
2012-09-01 10:18:08 +01:00
Richard Brooksby
7d28876904 Expanded event parameters into separate macros annotated with parameter names, simplifying event definition macros.
Copied from Perforce
 Change: 179122
 ServerID: perforce.ravenbrook.com
2012-08-31 04:25:18 +01:00
Richard Brooksby
4009b8a559 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
2012-08-21 22:48:11 +01:00
David Lovemore
929492618e Fixup warnings of unused variables. now compiles.
Copied from Perforce
 Change: 178793
 ServerID: perforce.ravenbrook.com
2012-07-31 15:00:21 +01:00
David Lovemore
2f11fd7b65 Tidy up code from unused variable warnings.
Copied from Perforce
 Change: 178787
 ServerID: perforce.ravenbrook.com
2012-07-31 14:19:26 +01:00
Richard Kistruck
b79ab788a2 mps br/timing: tabs in source files. (p4 diff -db -- confirms whitespace changes only).
Copied from Perforce
 Change: 166673
 ServerID: perforce.ravenbrook.com
2008-11-07 13:56:12 +00:00
Richard Kistruck
f1c19b5746 Mps: (from branch unfixed-summary) 161973, 161977, 161978, 161982:
seg.c: SegDescribe: say "buffer: NULL" if it is (rather than saying nothing).
buffer.c: BufferDescribe: now interprets buffer->mode for you.
poolamc.c: amcSegCheck: check Nailboard present onlyif SegNailed for some trace;
 AMCSegDescribe: correct SEG_SUPERCLASS (so we see GCSeg fields); 
  say whether seg is Mobile, Boarded (there's a nailboard), or Stuck;
  clearer Map symbols, and print a key for them.

Copied from Perforce
 Change: 161983
 ServerID: perforce.ravenbrook.com
2007-03-22 15:23:20 +00:00