David Lovemore
3b97cae580
Catch up merge from master/...@186577
...
Copied from Perforce
Change: 186582
ServerID: perforce.ravenbrook.com
2014-06-13 16:38:20 +01:00
Gareth Rees
bf97a59af1
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
David Lovemore
bd05f7d321
Updated due to gdr's review comments in mail < https://info.ravenbrook.com/mail/2014/06/13/12-46-29/0/ >
...
Copied from Perforce
Change: 186569
ServerID: perforce.ravenbrook.com
2014-06-13 15:09:49 +01:00
Gareth Rees
3aabbcfa48
Rename vmgrainsize to vmpagesize (because it is in fact the operating system page size) and to avoid confusion with the arena grain size.
...
Copied from Perforce
Change: 186543
ServerID: perforce.ravenbrook.com
2014-06-12 17:18:50 +01:00
Gareth Rees
324aa1801f
Need a definition of vman_grain_size.
...
Copied from Perforce
Change: 186509
ServerID: perforce.ravenbrook.com
2014-06-11 17:39:57 +01:00
Gareth Rees
41e2d84377
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
365e431f21
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
David Lovemore
c14a0e5e3e
Amc now respects mps_key_extend_by keyword argument.
...
AMC also uses MPS_KEY_LARGE_SIZE keyword argument to specify what size objects need to be to live on their own segment.
Copied from Perforce
Change: 186480
ServerID: perforce.ravenbrook.com
2014-06-11 12:12:44 +01:00
Gareth Rees
331d260bfd
Catch-up merge from master sources @186436 to branch/2014-04-08/align.
...
Copied from Perforce
Change: 186439
ServerID: perforce.ravenbrook.com
2014-06-08 16:30:53 +01:00
Gareth Rees
75e502fc7b
Catch-up merge from master sources @186352 to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186355
ServerID: perforce.ravenbrook.com
2014-05-29 16:03:34 +01:00
Gareth Rees
d1c5dfc2d2
Add comment explaining purpose of attribute_unused.
...
Copied from Perforce
Change: 186335
ServerID: perforce.ravenbrook.com
2014-05-28 17:24:46 +01:00
Gareth Rees
c639055f7b
In light of performance findings, boost the default arena size to 256 mb. add a -m option to djbench so that we can test the effect of setting the initial arena size on the manual pool classes.
...
Copied from Perforce
Change: 186224
ServerID: perforce.ravenbrook.com
2014-05-20 23:25:03 +01:00
Gareth Rees
a25521dbe9
Catch-up merge from branch/2014-03-30/addrset to branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186082
ServerID: perforce.ravenbrook.com
2014-05-13 16:27:17 +01:00
Gareth Rees
7818a73504
Merge branch/2014-02-23/mvff-tune into branch/2014-04-15/mvffnoseg.
...
Copied from Perforce
Change: 186079
ServerID: perforce.ravenbrook.com
2014-05-13 16:10:51 +01:00
Gareth Rees
9aecea10df
Ansi platform compiles and passes tests on windows. in detail:
...
* Move Windows-specific modules like vmw3.c out of commpre.nmk and into the platform-specific Nmake files.
* Set StackProbeDEPTH to 0 on the ANSI platform.
* New Nmake file ananmv.nmk builds the MPS for the ANSI platform using Microsoft Visual C/C++.
Copied from Perforce
Change: 186063
ServerID: perforce.ravenbrook.com
2014-05-13 10:12:56 +01:00
Gareth Rees
598bd93af8
Setenv requires _gnu_source, so get the headers in the right order so that the feature macros are set up in config.h before any system header is included.
...
Don't update _XOPEN_SOURCE if it's already set to a high enough value.
Copied from Perforce
Change: 186049
ServerID: perforce.ravenbrook.com
2014-05-12 19:48:01 +01:00
Gareth Rees
35985c3587
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
32cd7e343b
Remove mps_key_cbs_extend_by and mfsextendself keyword arguments to cbsinit. these were unused and obsoleted by cbsblockpool.
...
Copied from Perforce
Change: 186006
ServerID: perforce.ravenbrook.com
2014-05-11 19:09:44 +01:00
Gareth Rees
d377539ae7
Default value for mps_key_ams_support_ambiguous is now the safer value true.
...
Copied from Perforce
Change: 185927
ServerID: perforce.ravenbrook.com
2014-05-01 18:02:53 +01:00
Gareth Rees
4c655eba6a
Fix rash build on os x by adding the unused attribute to functions declared static that are not called in the rash variety.
...
Copied from Perforce
Change: 185915
ServerID: perforce.ravenbrook.com
2014-05-01 12:18:00 +01:00
Gareth Rees
7b9d33799e
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
282b0cb830
Update comment to match design.
...
Copied from Perforce
Change: 185902
ServerID: perforce.ravenbrook.com
2014-04-30 16:30:01 +01:00
Gareth Rees
f4e63e0bdd
No need for prod_checklevel_initial (was unused).
...
Copied from Perforce
Change: 185876
ServerID: perforce.ravenbrook.com
2014-04-30 11:08:23 +01:00
Gareth Rees
4ac5e3a9ce
Oops: sense of test was wrong way round.
...
Copied from Perforce
Change: 185581
ServerID: perforce.ravenbrook.com
2014-04-16 10:55:39 +01:00
Gareth Rees
02c40ddb7e
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
8624638093
Default value for mps_key_arena_size makes it easier to create arenas.
...
Copied from Perforce
Change: 185472
ServerID: perforce.ravenbrook.com
2014-04-11 21:15:09 +01:00
Gareth Rees
fb2443daaa
Fix the build for gcc on os x: gcc warns about the missing return in protcatchthread, but we don't want to add one because that would be unreachable code. so use __attribute__((__noreturn__)) instead.
...
Copied from Perforce
Change: 185461
ServerID: perforce.ravenbrook.com
2014-04-11 12:42:26 +01:00
Gareth Rees
88626830d8
Alignment is now configurable for mv pools using mps_key_align.
...
MVFF and MVT support alignments down to FreelistMinimumAlignment.
For MVFF and MVT, alignments that are too small are rounded up automatically, to make it easier to write portable programs.
Copied from Perforce
Change: 185369
ServerID: perforce.ravenbrook.com
2014-04-08 21:32:19 +01:00
Gareth Rees
d939167b1e
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
643ab5a49a
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
fc7bdbd4dd
Fixed dl's review comments < https://info.ravenbrook.com/mail/2014/04/01/13-28-17/0/ >.
...
Copied from Perforce
Change: 185127
ServerID: perforce.ravenbrook.com
2014-04-01 17:02:00 +01:00
Gareth Rees
9c7e619ac0
Fix compilation on lii6gc:
...
* Don't test __has_feature unless we know we are on MPS_BUILD_LL.
* Fix type-punned pointer aliasing in expt825.c.
Copied from Perforce
Change: 185104
ServerID: perforce.ravenbrook.com
2014-03-31 13:01:40 +01:00
Gareth Rees
0094610a6a
Support the clang address sanitizer.
...
Copied from Perforce
Change: 185096
ServerID: perforce.ravenbrook.com
2014-03-30 18:51:53 +01:00
Gareth Rees
6de8c58889
Catch-up merge from master sources to branch/2014-03-21/pellesc.
...
Copied from Perforce
Change: 185074
ServerID: perforce.ravenbrook.com
2014-03-28 13:54:30 +00:00
Gareth Rees
7ceb6297de
Remove #pragma warning(disable: ...) for microsoft visual c/c++ warnings that are no longer generated by the code, so that we get the maximum checking from this compiler.
...
Copied from Perforce
Change: 185072
ServerID: perforce.ravenbrook.com
2014-03-28 13:09:14 +00:00
Gareth Rees
4da195068c
Add and document new configuration options config_thread_single and config_protection_none.
...
Copied from Perforce
Change: 185037
ServerID: perforce.ravenbrook.com
2014-03-26 23:19:04 +00:00
Gareth Rees
d1a51c98c8
Symbols starting config_ must be confined to config.h (see design.mps.config.impl.dep).
...
Copied from Perforce
Change: 185027
ServerID: perforce.ravenbrook.com
2014-03-26 16:25:14 +00:00
Gareth Rees
7fc9d6f911
Avoid expanding __file__ in aver in pelles c -- the compiler somehow loses its definition for __file__ in deeply nested macro expansions.
...
Copied from Perforce
Change: 185025
ServerID: perforce.ravenbrook.com
2014-03-26 13:44:02 +00:00
Gareth Rees
c7b793143d
Fix review comments from dl < https://info.ravenbrook.com/mail/2014/03/25/17-44-56/0/ >.
...
Add __attribute__((__format__(printf))) to functions that take a printf-compatible format string (when building using GCC or Clang), so that format string mistakes can be detected statically.
Copied from Perforce
Change: 185021
ServerID: perforce.ravenbrook.com
2014-03-26 12:27:35 +00:00
Gareth Rees
30e8b23b45
Support for stackprobe on w3i3pc and w3i6pc.
...
Copied from Perforce
Change: 184998
ServerID: perforce.ravenbrook.com
2014-03-25 11:05:09 +00:00
Gareth Rees
c1df7b56ce
64-bit support for pelles c:
...
* New nmake file w3i6pc.nmk.
* New stack scanner ssw3i6pc.c supplies missing jump buffer definition.
* Some platform tests change from defined(MPS_PF_W3I6MV) to defined(MPS_OS_w3) && defined(MPS_ARCH_I6).
* Make reasonable changes to the source code to avoid warnings from Pelles C:
** Ensure that printf formats are consistent with arguments by using PRIuLONGEST and casting to ulongest_t.
** Use size_t for loop variables that index into arrays.
** Suppress "Consider changing type to 'size_t' for loop variable" warnings for the MPS core.
Copied from Perforce
Change: 184996
ServerID: perforce.ravenbrook.com
2014-03-25 10:59:09 +00:00
Gareth Rees
c94be13bdf
Improved support for pelles c:
...
* Refactor nmake files so that a compiler-specific makefile is included; move Microsoft Visual C-specific options to mv.nmk.
* Add nmake files for Pelles (w3i3pc.nmk and pc.nmk).
* Rename spw3i3mv.c to spw3i3.c and spw3i6mv.c to spw3i6.c since these are also used by Pelles C.
* Make reasonable changes to the source code to avoid warnings from Pelles C:
** check results of function calls;
** avoid useless return values;
** undef max before defining it;
** ensure printf formats are checkable;
** move notreached() assertions to the end of blocks;
** suppress warnings in cases where the code shouldn't be changed ("Unreachable code", "Inline assembly code is not portable", "Structured Exception Handling is not portable").
Copied from Perforce
Change: 184977
ServerID: perforce.ravenbrook.com
2014-03-24 18:23:29 +00:00
Richard Brooksby
46dc29b3da
Responding to code review < https://info.ravenbrook.com/mail/2014/03/12/15-42-41/0/ >.
...
Copied from Perforce
Change: 184754
ServerID: perforce.ravenbrook.com
2014-03-12 15:45:50 +00:00
Richard Brooksby
eb75944742
Adding a keyword to the arena to disable zoned allocation.
...
Copied from Perforce
Change: 184599
ServerID: perforce.ravenbrook.com
2014-02-28 13:20:06 +00:00
Richard Brooksby
fc720aff46
Eliminating complex zonedcbs adt and reintroducing a cbs with zone summaries. removing the default “high” segment preference, that caused the cbs trees to unbalance, and isn’t required outside of ep. considerable reduction in code and speed up, now at parity with master on test xc/release/gcbench -x 1234 amc
...
Copied from Perforce
Change: 184587
ServerID: perforce.ravenbrook.com
2014-02-28 00:35:05 +00:00
Richard Brooksby
91ed6eb0d9
Instead of aggressively returning every page it can, mvff takes a parameter for the proportion of spare space to hold in its free lists before attempting to return space to the arena.
...
Copied from Perforce
Change: 184498
ServerID: perforce.ravenbrook.com
2014-02-24 23:04:31 +00:00
Richard Brooksby
4dff43a172
Catch-up merge from master, mainly to pick up spare-ring merge.
...
Copied from Perforce
Change: 184365
ServerID: perforce.ravenbrook.com
2014-02-18 13:47:49 +00:00
Richard Brooksby
199a1261ed
Catch-up merge from master, mainly to pick up chain-zones merge.
...
Copied from Perforce
Change: 184343
ServerID: perforce.ravenbrook.com
2014-02-14 15:23:36 +00:00
Richard Brooksby
7f590df09d
Responding to review comments. see < https://info.ravenbrook.com/mail/2014/02/14/14-38-07/0/ >.
...
Copied from Perforce
Change: 184340
ServerID: perforce.ravenbrook.com
2014-02-14 15:05:18 +00:00
Richard Brooksby
0833d101a0
Responding to review comments. see < https://info.ravenbrook.com/mail/2014/02/12/11-30-00/0/ >.
...
Copied from Perforce
Change: 184331
ServerID: perforce.ravenbrook.com
2014-02-12 11:31:00 +00:00