123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257 |
- #ifndef __S48_GC_CONFIG
- #define __S48_GC_CONFIG
- #include "page_constants.h"
- #include "utils.h"
- #ifndef DISPLAY_MEASURE_GC
- #define DISPLAY_MEASURE_GC FALSE
- #endif
- #ifndef BIBOP_LOG
- #define BIBOP_LOG FALSE
- #endif
- #ifndef S48_MEASURE_GC_TIME
- #define S48_MEASURE_GC_TIME FALSE
- #endif
- #ifndef MEASURE_GC
- #define MEASURE_GC FALSE
- #endif
- #ifndef S48_MINIMUM_SMALL_AREA_SIZE
- #define S48_MINIMUM_SMALL_AREA_SIZE 32
- #endif
- #ifndef S48_MAXIMUM_SMALL_AREA_SIZE
- #define S48_MAXIMUM_SMALL_AREA_SIZE (2*S48_MINIMUM_SMALL_AREA_SIZE)
- #endif
- #ifndef S48_MINIMUM_WEAK_AREA_SIZE
- #define S48_MINIMUM_WEAK_AREA_SIZE 2
- #endif
- #ifndef S48_MAXIMUM_WEAK_AREA_SIZE
- #define S48_MAXIMUM_WEAK_AREA_SIZE 4
- #endif
- #ifndef S48_SMALL_OBJECT_LIMIT
- #define S48_SMALL_OBJECT_LIMIT PAGES_TO_BYTES_SMALL_CONST_FOR_CPP(16)
- #endif
- #if BYTES_TO_PAGES(S48_SMALL_OBJECT_LIMIT) > S48_MINIMUM_SMALL_AREA_SIZE
- #error "S48_MINIMUM_SMALL_AREA_SIZE has to be equal or greater than S48_SMALL_OBJECT_LIMIT"
- #endif
- #ifndef S48_CREATION_SPACE_SIZE
- #define S48_CREATION_SPACE_SIZE (576)
- #endif
- #ifndef S48_ADJUST_WATER_MARK
- #define S48_ADJUST_WATER_MARK FALSE
- #endif
- #ifndef S48_DEFAULT_WATER_MARK
- #define S48_DEFAULT_WATER_MARK (S48_CREATION_SPACE_SIZE / 2)
- #endif
- #if S48_DEFAULT_WATER_MARK >= S48_CREATION_SPACE_SIZE
- #error "S48_DEFAULT_WATER_MARK has to be smaller than S48_CREATION_SPACE_SIZE"
- #endif
- #ifndef S48_MAXIMUM_LARGE_CREATION_SPACE_SIZE
- #define S48_MAXIMUM_LARGE_CREATION_SPACE_SIZE (2*1024*1024)
- #endif
- #ifndef S48_GENERATIONS_COUNT
- #define S48_GENERATIONS_COUNT 4
- #endif
- #if S48_GENERATIONS_COUNT < 1
- #error "S48_GENERATIONS_COUNT has to be a positive number"
- #endif
- #ifndef S48_LOG_CARD_SIZE
- #define S48_LOG_CARD_SIZE 11
- #endif
- #define S48_NO_DIRTY_VECTORS 0
- #define S48_ADDRESS_DIRTY_VECTORS 1
- #ifndef S48_DIRTY_VECTOR_METHOD
- #define S48_DIRTY_VECTOR_METHOD S48_ADDRESS_DIRTY_VECTORS
- #endif
- #define S48_MUTATED_LOCATION 0
- #define S48_STOB_LOCATION 1
- #define S48_INTERGEN_STOB_LOCATION 2
- #ifndef S48_WRITE_BARRIER_COMPLEXITY
- #define S48_WRITE_BARRIER_COMPLEXITY S48_INTERGEN_STOB_LOCATION
- #endif
- #ifndef S48_USE_REMEMBERED_SETS
- #define S48_USE_REMEMBERED_SETS TRUE
- #endif
- #if (S48_USE_REMEMBERED_SETS)
- #define S48_DYNAMIC_REMEMBERED_SETS 0
- #define S48_STATIC_REMEMBERED_SETS 1
- #define S48_EXTENSIBLE_REMEMBERED_SETS 2
- #ifndef S48_REMEMBERED_SET_TYPE
- #define S48_REMEMBERED_SET_TYPE S48_EXTENSIBLE_REMEMBERED_SETS
- #endif
- #ifndef S48_REMEMBERED_SET_SIZE
- #define S48_REMEMBERED_SET_SIZE 1000
- #endif
- #ifndef S48_UNIQUE_REMEMBERED_SET
- #define S48_UNIQUE_REMEMBERED_SET TRUE
- #endif
- #endif
- #ifndef S48_COLLECTION_THRESHOLD
- #define S48_COLLECTION_THRESHOLD FALSE
- #endif
- #ifndef S48_COLLECTION_HEAP_LIMIT
- #define S48_COLLECTION_HEAP_LIMIT FALSE
- #endif
- #ifndef S48_COLLECTION_AGE_LIMIT
- #define S48_COLLECTION_AGE_LIMIT FALSE
- #endif
- #if (S48_COLLECTION_THRESHOLD || \
- S48_COLLECTION_HEAP_LIMIT || \
- S48_COLLECTION_AGE_LIMIT)
- #else
- #undef S48_COLLECTION_THRESHOLD
- #define S48_COLLECTION_THRESHOLD (1792*1024)
- #endif
- #ifndef S48_EMERGENCY_PERCENTAGE
- #define S48_EMERGENCY_PERCENTAGE 10
- #endif
- #ifndef S48_PROMOTION_THRESHOLD
- #define S48_PROMOTION_THRESHOLD FALSE
- #endif
- #ifndef S48_PROMOTION_HEAP_LIMIT
- #define S48_PROMOTION_HEAP_LIMIT FALSE
- #endif
- #ifndef S48_PROMOTION_AGE_LIMIT
- #define S48_PROMOTION_AGE_LIMIT FALSE
- #endif
-
- #if (S48_PROMOTION_THRESHOLD || \
- S48_PROMOTION_HEAP_LIMIT || \
- S48_PROMOTION_AGE_LIMIT \
- )
- #else
- #undef S48_PROMOTION_AGE_LIMIT
- #define S48_PROMOTION_AGE_LIMIT 2
- #endif
- #ifndef S48_PART_OF_OLD_AREAS
- #define S48_PART_OF_OLD_AREAS 1
- #endif
- #ifndef S48_USE_STATIC_SPACE
- #define S48_USE_STATIC_SPACE TRUE
- #endif
- #if (S48_USE_STATIC_SPACE && S48_GENERATIONS_COUNT < 3)
- #error "Static Space option needs at least 3 generations!"
- #endif
- #define S48_HAVE_TRANSPORT_LINK_CELLS TRUE
- #endif
|