lib: add hint to generate more pipeline friendly code (#3138)
With statistic data of test data files of silesia the chance of position beyond highThreshold is very low (~1.3%@L8 in most cases, all <2.5%), and is in "lowprob area". Add the branch hint so compiler can get better pipiline codegen. With this change it is observed ~1% of mozilla and xml, and slight (0.3%~0.8%) but consistent uplift on other files on Arm N1. Signed-off-by: Jun He <jun.he@arm.com> Change-Id: Id9ba1d5c767e975290b5c1bf0ecce906544f4ade
This commit is contained in:
parent
558cf20d0d
commit
ec5fdcde19
@ -543,7 +543,7 @@ void ZSTD_buildFSETable_body(ZSTD_seqSymbol* dt,
|
|||||||
for (i=0; i<n; i++) {
|
for (i=0; i<n; i++) {
|
||||||
tableDecode[position].baseValue = s;
|
tableDecode[position].baseValue = s;
|
||||||
position = (position + step) & tableMask;
|
position = (position + step) & tableMask;
|
||||||
while (position > highThreshold) position = (position + step) & tableMask; /* lowprob area */
|
while (UNLIKELY(position > highThreshold)) position = (position + step) & tableMask; /* lowprob area */
|
||||||
} }
|
} }
|
||||||
assert(position == 0); /* position must reach all cells once, otherwise normalizedCounter is incorrect */
|
assert(position == 0); /* position must reach all cells once, otherwise normalizedCounter is incorrect */
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user