MPS issue job003653

TitleScanner makes no use of __builtin_prefetch
Statusopen
Prioritynice
Assigned userGareth Rees
OrganizationRavenbrook
DescriptionThe scanner sequentially examines blocks of memory. This pulls the memory into the processor's cache, and so its performance might benefit from prefetching. (The next chunk can be loaded into the cache in parallel with the scanning of the current chunk.)

(Originally noted by DRJ [2].)
AnalysisGCC [1] has a __builtin_prefetch function that is "used to minimize cache-miss latency by moving data into a cache before it is accessed".

Deciding how much data to prefetch requires some tuning, so will be tricky since it's client code that's doing the scanning.
How foundinspection
Evidence[1] <https://gcc.gnu.org/onlinedocs/gcc/Other-Builtins.html>
[2] https://info.ravenbrook.com/project/mp...2001-11-05/mmprevol/request/mps/160128/
Created byGareth Rees
Created on2013-12-23 16:20:16
Last modified byGareth Rees
Last modified on2018-06-14 13:33:16
History2013-12-23 GDR Created.