ThinLTOCodeGenerator: ignore 0 values for the cache settings.

From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 268890
This commit is contained in:
Mehdi Amini 2016-05-09 05:16:30 +00:00
parent 707c89c00d
commit dfa2392f09
2 changed files with 17 additions and 9 deletions

View File

@ -668,7 +668,8 @@ extern void thinlto_codegen_set_cache_dir(thinlto_code_gen_t cg,
/**
* Sets the cache pruning interval (in seconds). A negative value disable the
* pruning. An unspecified default value will be applied.
* pruning. An unspecified default value will be applied, and a value of 0 will
* be ignored.
*
* \since LTO_API_VERSION=18
*/
@ -679,8 +680,8 @@ extern void thinlto_codegen_set_cache_pruning_interval(thinlto_code_gen_t cg,
* Sets the maximum cache size that can be persistent across build, in terms of
* percentage of the available space on the the disk. Set to 100 to indicate
* no limit, 50 to indicate that the cache size will not be left over half the
* available space. A value over 100 will be reduced to 100. An unspecified
* default value will be applied.
* available space. A value over 100 will be reduced to 100, a value of 0 will
* be ignored. An unspecified default value will be applied.
*
* The formula looks like:
* AvailableSpace = FreeSpace + ExistingCacheSize
@ -693,7 +694,7 @@ extern void thinlto_codegen_set_final_cache_size_relative_to_available_space(
/**
* Sets the expiration (in seconds) for an entry in the cache. An unspecified
* default value will be applied.
* default value will be applied. A value of 0 will be ignored.
*
* \since LTO_API_VERSION=18
*/

View File

@ -119,21 +119,27 @@ public:
void setCacheDir(std::string Path) { CacheOptions.Path = std::move(Path); }
/// Cache policy: interval (seconds) between two prune of the cache. Set to a
/// negative value (default) to disable pruning.
/// negative value (default) to disable pruning. A value of 0 will be ignored.
void setCachePruningInterval(int Interval) {
CacheOptions.PruningInterval = Interval;
fprintf(stderr, "setCachePruningInterval %d\n", Interval);
if (Interval)
CacheOptions.PruningInterval = Interval;
}
/// Cache policy: expiration (in seconds) for an entry.
/// A value of 0 will be ignored.
void setCacheEntryExpiration(unsigned Expiration) {
CacheOptions.Expiration = Expiration;
if (Expiration)
CacheOptions.Expiration = Expiration;
}
/**
* Sets the maximum cache size that can be persistent across build, in terms
* of percentage of the available space on the the disk. Set to 100 to
* indicate no limit, 50 to indicate that the cache size will not be left over
* half the available space. A value over 100 will be reduced to 100.
* half the available space. A value over 100 will be reduced to 100, and a
* value of 0 will be ignored.
*
*
* The formula looks like:
* AvailableSpace = FreeSpace + ExistingCacheSize
@ -141,7 +147,8 @@ public:
*
*/
void setMaxCacheSizeRelativeToAvailableSpace(unsigned Percentage) {
CacheOptions.MaxPercentageOfAvailableSpace = Percentage;
if (Percentage)
CacheOptions.MaxPercentageOfAvailableSpace = Percentage;
}
/**@}*/