Gareth Rees
55305914da
Fix the mortality of the world to avoid runaway feedback between the dynamic criterion and the mortality of the arena's top generation as described in < https://info.ravenbrook.com/mail/2018/07/13/19-53-23/0/ >.
...
Copied from Perforce
Change: 194648
2018-07-13 20:56:08 +01:00
Gareth Rees
99260e46d6
Generation's computed mortality has denominator of condemned memory (not new memory), so use the same denominator when predicting the mortality for a trace.
...
Simpler to compute predicted mortality as casualties/condemned instead of 1 - survivors/condemned.
Copied from Perforce
Change: 194634
2018-07-13 12:07:54 +01:00
Gareth Rees
032bd714e0
Catch-up merge from master sources at changelevel 194628.
...
Copied from Perforce
Change: 194631
2018-07-13 11:28:36 +01:00
Gareth Rees
1ef415715f
Must get the new size of the generation before condemning it (afterwards, the condemned memory is accounted as "old", not "new").
...
Copied from Perforce
Change: 194628
2018-07-13 10:55:30 +01:00
Gareth Rees
b1e3bd9932
Improve describe output for generations.
...
Must take SegBase(seg) before reclaiming the segment in case it gets destroyed.
Copied from Perforce
Change: 194624
2018-07-12 09:47:29 +01:00
Gareth Rees
21e6672e70
Reclaim the same generations that were condemned.
...
Copied from Perforce
Change: 194621
2018-07-12 07:51:04 +01:00
Gareth Rees
90f5f01b84
Update common assertions in the manual.
...
Convert capacity to bytes once on initialization rather than every time it is used.
Copied from Perforce
Change: 194612
2018-07-11 21:27:47 +01:00
Gareth Rees
c692e2b6e0
Represent the set of generations condemned for a trace.
...
Eliminate duplication between policyCondemnChain and traceCondemnAll.
Compute better mortality estimate for collection of the world.
Copied from Perforce
Change: 194611
2018-07-11 21:14:43 +01:00
Gareth Rees
97fa28e3b7
There is now no difference between the sets of sources for compilers mv and pc, so eliminate the duplication.
...
Copied from Perforce
Change: 194602
2018-07-11 17:09:07 +01:00
Gareth Rees
590850726a
Merge branch/2014-10-26/sc into the master sources.
...
Copied from Perforce
Change: 194595
2018-07-11 15:20:49 +01:00
Gareth Rees
13e3f5d1cd
Assert that stackhot gives us an address that's warmer than the jump buffer, as suggested by nb.
...
Copied from Perforce
Change: 194594
2018-07-11 15:02:19 +01:00
Gareth Rees
b4068ba48c
Attribute_noinline is not needed by the smoke tests.
...
Copied from Perforce
Change: 194590
2018-07-11 14:44:28 +01:00
Gareth Rees
99d0b6393c
Avoid "warning c4312: 'type cast': conversion from 'unsigned int' to 'addr' of greater size" from microsoft visual c.
...
Copied from Perforce
Change: 194583
2018-07-11 12:56:00 +01:00
Gareth Rees
1dc8b245f0
Ssixi3.c and ssixi6.c were deleted, so don't try to compile them.
...
Copied from Perforce
Change: 194580
2018-07-11 11:08:56 +01:00
Gareth Rees
e5e8d034d9
Force stackhot not to be inlined, avoiding the problem described in < https://info.ravenbrook.com/mail/2018/07/11/09-48-49/0/ >
...
Copied from Perforce
Change: 194577
2018-07-11 10:57:28 +01:00
Gareth Rees
268178f4cf
Merge branch 2016-03-27/cbs-tidy into the master sources.
...
Copied from Perforce
Change: 194572
2018-07-10 15:31:25 +01:00
Gareth Rees
cf80504dbb
Justify invalidation in rangefinish, as suggested by rb < https://info.ravenbrook.com/mail/2018/07/10/11-01-54/0/ >
...
Copied from Perforce
Change: 194560
2018-07-10 12:13:33 +01:00
Gareth Rees
1cd422b339
Update copyright as suggested by dl in review < https://info.ravenbrook.com/mail/2018/07/10/09-59-36/0/ >
...
Copied from Perforce
Change: 194555
2018-07-10 11:22:18 +01:00
Gareth Rees
db4c75c932
Add awl to gcbench.
...
Copied from Perforce
Change: 194552
2018-07-10 10:06:19 +01:00
Gareth Rees
80b2832260
Need to capture the stack in mps_arena_roots_walk, as explained in design.mps.stack-scan.anal.entry-points.
...
Copied from Perforce
Change: 194497
2018-07-07 21:30:00 +01:00
Gareth Rees
81fdc239e7
Fix issues identified in review by gdr < https://info.ravenbrook.com/mail/2018/07/07/15-54-49/0/ >
...
Copied from Perforce
Change: 194494
2018-07-07 19:23:58 +01:00
Gareth Rees
9893976d39
Fumbled the merge.
...
Copied from Perforce
Change: 194488
2018-07-06 21:47:19 +01:00
Gareth Rees
317cc9a5a6
Catch-up merge from master sources at changelevel 194484 to branch/2014-10-26/sc.
...
Copied from Perforce
Change: 194487
2018-07-06 21:42:35 +01:00
Gareth Rees
f1b880321b
Don't make multiple calls to controlalloc when you could just make one and divvy it up yourself.
...
Copied from Perforce
Change: 194484
2018-07-06 18:56:12 +01:00
Gareth Rees
bcc01c1fd8
No need for rvalue(&(...)) -- the result of the & operator is not an lvalue.
...
Copied from Perforce
Change: 194456
2018-07-05 22:53:02 +01:00
Gareth Rees
ba03d79694
Catch-up merge from master sources at changelevel 194449 to branch/2018-06-18/mrgseg.
...
Copied from Perforce
Change: 194452
2018-07-05 16:22:24 +01:00
Gareth Rees
c868d94400
Update mpscopyrightnotice, as required by §3.1.1 of https://info.ravenbrook.com/project/mps/master/procedure/version-create
...
Copied from Perforce
Change: 194446
2018-07-05 14:55:06 +01:00
Gareth Rees
940c52fddd
Merge branch/2016-03-01/mvff-control into the master sources.
...
Copied from Perforce
Change: 194442
2018-07-05 13:37:01 +01:00
Gareth Rees
bb53551d8f
Merge branch/2018-07-04/mvff-perf into the master sources.
...
Copied from Perforce
Change: 194439
2018-07-05 12:54:16 +01:00
Gareth Rees
fc3d0e91b9
Restore descriptive version of comment as suggested by rb < https://info.ravenbrook.com/mail/2018/07/05/11-08-52/0/ >
...
Copied from Perforce
Change: 194436
2018-07-05 12:17:41 +01:00
Gareth Rees
b30964104a
Rename "node" to "rangetree" as suggested in review by gdr < https://info.ravenbrook.com/mail/2018/07/05/10-17-35/0/ >
...
Get Xcode builds working.
Add rangetree.[ch] to the source code index.
Copied from Perforce
Change: 194434
2018-07-05 12:06:47 +01:00
Gareth Rees
827f9676f2
Fix issues identified in review by gdr < https://info.ravenbrook.com/mail/2018/07/05/10-17-35/0/ >
...
Copied from Perforce
Change: 194430
2018-07-05 11:20:51 +01:00
Gareth Rees
3af7e264a3
Fix the check of the cbs overlapping insertion failure case: in order for the inserted block not to overlap it's right neighbour, its limit must be <= the base of the right neighbour (not the limit as previously written). this mistake was introduced accidentally in change 182344.
...
Copied from Perforce
Change: 194427
2018-07-05 10:43:47 +01:00
Gareth Rees
73702aa7f1
No need for rvalue(&(...)) -- the result of the & operator is not an lvalue.
...
Copied from Perforce
Change: 194424
2018-07-05 10:24:22 +01:00
Gareth Rees
ae3cc16e4b
Function implementations call the macro implementations, to reduce the burden of keeping the functions and macros consistent.
...
Copied from Perforce
Change: 194418
2018-07-05 09:28:01 +01:00
Gareth Rees
08f78b4b0e
Merge branch/2018-07-03/mfs-tractp into the master sources.
...
Copied from Perforce
Change: 194414
2018-07-04 17:13:53 +01:00
Gareth Rees
2564ffcb61
Avoid emitting poolalloc and poolfree events in the hot variety, so that they not affected asymmetrically by the poolfree macro.
...
Copied from Perforce
Change: 194410
2018-07-04 16:51:13 +01:00
Gareth Rees
a737d39444
Merge branch 2018-06-27/job004056.
...
Copied from Perforce
Change: 194409
2018-07-04 16:46:04 +01:00
Gareth Rees
17504d0242
Mfsextend now takes (base, limit) instead of (base, size) for consistency with the rest of the mps.
...
Copied from Perforce
Change: 194408
2018-07-04 16:31:45 +01:00
Gareth Rees
6c3da83fb2
Avoid "dereferencing type-punned pointer might break strict-aliasing rules" warning from gcc.
...
Copied from Perforce
Change: 194403
2018-07-04 15:56:51 +01:00
Gareth Rees
0cf1718af9
Improve performance of mvff in hot builds by:
...
1. Using macros to bypass PoolFree and Land* generic functions.
2. Compiling out assertions on functions on the critical paths for manual allocation and freeing.
3. Taking advantage of the fact that splay->updateNode does not change during a splay operation.
Copied from Perforce
Change: 194397
2018-07-04 14:30:22 +01:00
Gareth Rees
97f8625195
Fix issues identified in review https://info.ravenbrook.com/mail/2018/07/03/10-10-11/0/
...
Copied from Perforce
Change: 194382
2018-07-03 13:04:21 +01:00
Gareth Rees
4946085f89
Integrate branch/2016-03-15/sunrise/...@190086,190087 to pick up elimination of tractp from mfs.
...
Copied from Perforce
Change: 194372
2018-07-03 10:34:46 +01:00
Gareth Rees
33c55964a5
Fix issues identified in review by gdr.
...
Copied from Perforce
Change: 194339
2018-07-02 09:05:03 +01:00
Gareth Rees
a215a7c4b9
Avoid warning "./poolmv.c:934:13: error: 'static' function 'mvcheck' declared in header file" from clang 5.0. see https://travis-ci.org/ravenbrook/mps/jobs/398247514
...
Copied from Perforce
Change: 194328
2018-06-29 15:12:55 +01:00
Gareth Rees
5ee645763e
Catch-up merge from master sources at changelevel 194314 to branch/2016-03-01/mvff-control.
...
Copied from Perforce
Change: 194323
2018-06-29 14:28:33 +01:00
Gareth Rees
d1d282d351
Restore fixclosure together with explanation.
...
Copied from Perforce
Change: 194314
2018-06-29 13:54:55 +01:00
Gareth Rees
556bb96d41
Catch-up merge from master sources at changelevel 194268 to branch/2018-06-18/job004070.
...
Copied from Perforce
Change: 194274
2018-06-28 14:31:02 +01:00
Gareth Rees
d22656c8c4
Catch-up merge from the master sources at changelevel 194194 to branch/2017-03-04/seg-methods.
...
Copied from Perforce
Change: 194267
2018-06-28 13:52:36 +01:00
Gareth Rees
c320c86231
Use initonceexecuteonce to get thread-safe initialization of the global locks.
...
This means that the MPS no longer supports Windows XP, so update documentation accordingly.
Exercise the global locks in lockut.
Copied from Perforce
Change: 194253
2018-06-28 12:39:06 +01:00