Merge pull request #1838 from facebook/fixAdvanced
fix initCStream_advanced() for fast strategies
This commit is contained in:
commit
09d0b52998
@ -238,10 +238,10 @@ size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, ZSTD_paramete
|
|||||||
RETURN_ERROR_IF(!cctxParams, GENERIC);
|
RETURN_ERROR_IF(!cctxParams, GENERIC);
|
||||||
FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) );
|
FORWARD_IF_ERROR( ZSTD_checkCParams(params.cParams) );
|
||||||
memset(cctxParams, 0, sizeof(*cctxParams));
|
memset(cctxParams, 0, sizeof(*cctxParams));
|
||||||
|
assert(!ZSTD_checkCParams(params.cParams));
|
||||||
cctxParams->cParams = params.cParams;
|
cctxParams->cParams = params.cParams;
|
||||||
cctxParams->fParams = params.fParams;
|
cctxParams->fParams = params.fParams;
|
||||||
cctxParams->compressionLevel = ZSTD_CLEVEL_DEFAULT; /* should not matter, as all cParams are presumed properly defined */
|
cctxParams->compressionLevel = ZSTD_CLEVEL_DEFAULT; /* should not matter, as all cParams are presumed properly defined */
|
||||||
assert(!ZSTD_checkCParams(params.cParams));
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,10 +251,10 @@ static ZSTD_CCtx_params ZSTD_assignParamsToCCtxParams(
|
|||||||
const ZSTD_CCtx_params* cctxParams, ZSTD_parameters params)
|
const ZSTD_CCtx_params* cctxParams, ZSTD_parameters params)
|
||||||
{
|
{
|
||||||
ZSTD_CCtx_params ret = *cctxParams;
|
ZSTD_CCtx_params ret = *cctxParams;
|
||||||
|
assert(!ZSTD_checkCParams(params.cParams));
|
||||||
ret.cParams = params.cParams;
|
ret.cParams = params.cParams;
|
||||||
ret.fParams = params.fParams;
|
ret.fParams = params.fParams;
|
||||||
ret.compressionLevel = ZSTD_CLEVEL_DEFAULT; /* should not matter, as all cParams are presumed properly defined */
|
ret.compressionLevel = ZSTD_CLEVEL_DEFAULT; /* should not matter, as all cParams are presumed properly defined */
|
||||||
assert(!ZSTD_checkCParams(params.cParams));
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -533,33 +533,33 @@ size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* CCtxParams,
|
|||||||
if (value) { /* 0 : does not change current level */
|
if (value) { /* 0 : does not change current level */
|
||||||
CCtxParams->compressionLevel = value;
|
CCtxParams->compressionLevel = value;
|
||||||
}
|
}
|
||||||
if (CCtxParams->compressionLevel >= 0) return CCtxParams->compressionLevel;
|
if (CCtxParams->compressionLevel >= 0) return (size_t)CCtxParams->compressionLevel;
|
||||||
return 0; /* return type (size_t) cannot represent negative values */
|
return 0; /* return type (size_t) cannot represent negative values */
|
||||||
}
|
}
|
||||||
|
|
||||||
case ZSTD_c_windowLog :
|
case ZSTD_c_windowLog :
|
||||||
if (value!=0) /* 0 => use default */
|
if (value!=0) /* 0 => use default */
|
||||||
BOUNDCHECK(ZSTD_c_windowLog, value);
|
BOUNDCHECK(ZSTD_c_windowLog, value);
|
||||||
CCtxParams->cParams.windowLog = value;
|
CCtxParams->cParams.windowLog = (U32)value;
|
||||||
return CCtxParams->cParams.windowLog;
|
return CCtxParams->cParams.windowLog;
|
||||||
|
|
||||||
case ZSTD_c_hashLog :
|
case ZSTD_c_hashLog :
|
||||||
if (value!=0) /* 0 => use default */
|
if (value!=0) /* 0 => use default */
|
||||||
BOUNDCHECK(ZSTD_c_hashLog, value);
|
BOUNDCHECK(ZSTD_c_hashLog, value);
|
||||||
CCtxParams->cParams.hashLog = value;
|
CCtxParams->cParams.hashLog = (U32)value;
|
||||||
return CCtxParams->cParams.hashLog;
|
return CCtxParams->cParams.hashLog;
|
||||||
|
|
||||||
case ZSTD_c_chainLog :
|
case ZSTD_c_chainLog :
|
||||||
if (value!=0) /* 0 => use default */
|
if (value!=0) /* 0 => use default */
|
||||||
BOUNDCHECK(ZSTD_c_chainLog, value);
|
BOUNDCHECK(ZSTD_c_chainLog, value);
|
||||||
CCtxParams->cParams.chainLog = value;
|
CCtxParams->cParams.chainLog = (U32)value;
|
||||||
return CCtxParams->cParams.chainLog;
|
return CCtxParams->cParams.chainLog;
|
||||||
|
|
||||||
case ZSTD_c_searchLog :
|
case ZSTD_c_searchLog :
|
||||||
if (value!=0) /* 0 => use default */
|
if (value!=0) /* 0 => use default */
|
||||||
BOUNDCHECK(ZSTD_c_searchLog, value);
|
BOUNDCHECK(ZSTD_c_searchLog, value);
|
||||||
CCtxParams->cParams.searchLog = value;
|
CCtxParams->cParams.searchLog = (U32)value;
|
||||||
return value;
|
return (size_t)value;
|
||||||
|
|
||||||
case ZSTD_c_minMatch :
|
case ZSTD_c_minMatch :
|
||||||
if (value!=0) /* 0 => use default */
|
if (value!=0) /* 0 => use default */
|
||||||
@ -3810,7 +3810,7 @@ size_t ZSTD_compressStream2( ZSTD_CCtx* cctx,
|
|||||||
if (cctx->mtctx == NULL) {
|
if (cctx->mtctx == NULL) {
|
||||||
DEBUGLOG(4, "ZSTD_compressStream2: creating new mtctx for nbWorkers=%u",
|
DEBUGLOG(4, "ZSTD_compressStream2: creating new mtctx for nbWorkers=%u",
|
||||||
params.nbWorkers);
|
params.nbWorkers);
|
||||||
cctx->mtctx = ZSTDMT_createCCtx_advanced(params.nbWorkers, cctx->customMem);
|
cctx->mtctx = ZSTDMT_createCCtx_advanced((U32)params.nbWorkers, cctx->customMem);
|
||||||
RETURN_ERROR_IF(cctx->mtctx == NULL, memory_allocation);
|
RETURN_ERROR_IF(cctx->mtctx == NULL, memory_allocation);
|
||||||
}
|
}
|
||||||
/* mt compression */
|
/* mt compression */
|
||||||
@ -3938,8 +3938,8 @@ static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEV
|
|||||||
{ 19, 12, 13, 1, 6, 1, ZSTD_fast }, /* base for negative levels */
|
{ 19, 12, 13, 1, 6, 1, ZSTD_fast }, /* base for negative levels */
|
||||||
{ 19, 13, 14, 1, 7, 0, ZSTD_fast }, /* level 1 */
|
{ 19, 13, 14, 1, 7, 0, ZSTD_fast }, /* level 1 */
|
||||||
{ 20, 15, 16, 1, 6, 0, ZSTD_fast }, /* level 2 */
|
{ 20, 15, 16, 1, 6, 0, ZSTD_fast }, /* level 2 */
|
||||||
{ 21, 16, 17, 1, 5, 1, ZSTD_dfast }, /* level 3 */
|
{ 21, 16, 17, 1, 5, 0, ZSTD_dfast }, /* level 3 */
|
||||||
{ 21, 18, 18, 1, 5, 1, ZSTD_dfast }, /* level 4 */
|
{ 21, 18, 18, 1, 5, 0, ZSTD_dfast }, /* level 4 */
|
||||||
{ 21, 18, 19, 2, 5, 2, ZSTD_greedy }, /* level 5 */
|
{ 21, 18, 19, 2, 5, 2, ZSTD_greedy }, /* level 5 */
|
||||||
{ 21, 19, 19, 3, 5, 4, ZSTD_greedy }, /* level 6 */
|
{ 21, 19, 19, 3, 5, 4, ZSTD_greedy }, /* level 6 */
|
||||||
{ 21, 19, 19, 3, 5, 8, ZSTD_lazy }, /* level 7 */
|
{ 21, 19, 19, 3, 5, 8, ZSTD_lazy }, /* level 7 */
|
||||||
@ -3963,8 +3963,8 @@ static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEV
|
|||||||
/* W, C, H, S, L, T, strat */
|
/* W, C, H, S, L, T, strat */
|
||||||
{ 18, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
{ 18, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
||||||
{ 18, 13, 14, 1, 6, 0, ZSTD_fast }, /* level 1 */
|
{ 18, 13, 14, 1, 6, 0, ZSTD_fast }, /* level 1 */
|
||||||
{ 18, 14, 14, 1, 5, 1, ZSTD_dfast }, /* level 2 */
|
{ 18, 14, 14, 1, 5, 0, ZSTD_dfast }, /* level 2 */
|
||||||
{ 18, 16, 16, 1, 4, 1, ZSTD_dfast }, /* level 3 */
|
{ 18, 16, 16, 1, 4, 0, ZSTD_dfast }, /* level 3 */
|
||||||
{ 18, 16, 17, 2, 5, 2, ZSTD_greedy }, /* level 4.*/
|
{ 18, 16, 17, 2, 5, 2, ZSTD_greedy }, /* level 4.*/
|
||||||
{ 18, 18, 18, 3, 5, 2, ZSTD_greedy }, /* level 5.*/
|
{ 18, 18, 18, 3, 5, 2, ZSTD_greedy }, /* level 5.*/
|
||||||
{ 18, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6.*/
|
{ 18, 18, 19, 3, 5, 4, ZSTD_lazy }, /* level 6.*/
|
||||||
@ -3990,8 +3990,8 @@ static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEV
|
|||||||
{ 17, 12, 12, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
{ 17, 12, 12, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
||||||
{ 17, 12, 13, 1, 6, 0, ZSTD_fast }, /* level 1 */
|
{ 17, 12, 13, 1, 6, 0, ZSTD_fast }, /* level 1 */
|
||||||
{ 17, 13, 15, 1, 5, 0, ZSTD_fast }, /* level 2 */
|
{ 17, 13, 15, 1, 5, 0, ZSTD_fast }, /* level 2 */
|
||||||
{ 17, 15, 16, 2, 5, 1, ZSTD_dfast }, /* level 3 */
|
{ 17, 15, 16, 2, 5, 0, ZSTD_dfast }, /* level 3 */
|
||||||
{ 17, 17, 17, 2, 4, 1, ZSTD_dfast }, /* level 4 */
|
{ 17, 17, 17, 2, 4, 0, ZSTD_dfast }, /* level 4 */
|
||||||
{ 17, 16, 17, 3, 4, 2, ZSTD_greedy }, /* level 5 */
|
{ 17, 16, 17, 3, 4, 2, ZSTD_greedy }, /* level 5 */
|
||||||
{ 17, 17, 17, 3, 4, 4, ZSTD_lazy }, /* level 6 */
|
{ 17, 17, 17, 3, 4, 4, ZSTD_lazy }, /* level 6 */
|
||||||
{ 17, 17, 17, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */
|
{ 17, 17, 17, 3, 4, 8, ZSTD_lazy2 }, /* level 7 */
|
||||||
@ -4016,7 +4016,7 @@ static const ZSTD_compressionParameters ZSTD_defaultCParameters[4][ZSTD_MAX_CLEV
|
|||||||
{ 14, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
{ 14, 12, 13, 1, 5, 1, ZSTD_fast }, /* base for negative levels */
|
||||||
{ 14, 14, 15, 1, 5, 0, ZSTD_fast }, /* level 1 */
|
{ 14, 14, 15, 1, 5, 0, ZSTD_fast }, /* level 1 */
|
||||||
{ 14, 14, 15, 1, 4, 0, ZSTD_fast }, /* level 2 */
|
{ 14, 14, 15, 1, 4, 0, ZSTD_fast }, /* level 2 */
|
||||||
{ 14, 14, 15, 2, 4, 1, ZSTD_dfast }, /* level 3 */
|
{ 14, 14, 15, 2, 4, 0, ZSTD_dfast }, /* level 3 */
|
||||||
{ 14, 14, 14, 4, 4, 2, ZSTD_greedy }, /* level 4 */
|
{ 14, 14, 14, 4, 4, 2, ZSTD_greedy }, /* level 4 */
|
||||||
{ 14, 14, 14, 3, 4, 4, ZSTD_lazy }, /* level 5.*/
|
{ 14, 14, 14, 3, 4, 4, ZSTD_lazy }, /* level 5.*/
|
||||||
{ 14, 14, 14, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */
|
{ 14, 14, 14, 4, 4, 8, ZSTD_lazy2 }, /* level 6 */
|
||||||
|
@ -45,7 +45,6 @@
|
|||||||
#define NBLOOPS 6
|
#define NBLOOPS 6
|
||||||
#define TIMELOOP_S 2
|
#define TIMELOOP_S 2
|
||||||
|
|
||||||
#define KNUTH 2654435761U
|
|
||||||
#define MAX_MEM (1984 MB)
|
#define MAX_MEM (1984 MB)
|
||||||
|
|
||||||
#define DEFAULT_CLEVEL 1
|
#define DEFAULT_CLEVEL 1
|
||||||
@ -722,7 +721,7 @@ static int usage_advanced(const char* exename)
|
|||||||
DISPLAY( "\nAdvanced options :\n");
|
DISPLAY( "\nAdvanced options :\n");
|
||||||
DISPLAY( " -b# : test only function # \n");
|
DISPLAY( " -b# : test only function # \n");
|
||||||
DISPLAY( " -l# : benchmark functions at that compression level (default : %i)\n", DEFAULT_CLEVEL);
|
DISPLAY( " -l# : benchmark functions at that compression level (default : %i)\n", DEFAULT_CLEVEL);
|
||||||
DISPLAY( " --zstd : custom parameter selection. Format same as zstdcli \n");
|
DISPLAY( "--zstd= : custom parameter selection. Format same as zstdcli \n");
|
||||||
DISPLAY( " -P# : sample compressibility (default : %.1f%%)\n", COMPRESSIBILITY_DEFAULT * 100);
|
DISPLAY( " -P# : sample compressibility (default : %.1f%%)\n", COMPRESSIBILITY_DEFAULT * 100);
|
||||||
DISPLAY( " -B# : sample size (default : %u)\n", (unsigned)kSampleSizeDefault);
|
DISPLAY( " -B# : sample size (default : %u)\n", (unsigned)kSampleSizeDefault);
|
||||||
DISPLAY( " -i# : iteration loops [1-9](default : %i)\n", NBLOOPS);
|
DISPLAY( " -i# : iteration loops [1-9](default : %i)\n", NBLOOPS);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user