Outer Reads/Writes detection
Offload KB - offload-library
Old Content Alert
Please note that this is a old document archive and the will most likely be out-dated or superseded by various other products and is purely here for historical purposes.
Using the -warnonouterreadswrites command line option will output to the compiler output all instances of __outer reads and writes from within Offload blocks. All these reads and writes will go via the software cache, unless they are listed as being memory copies.
This output is very useful for detecting slow reads and writes. One vital aspect is the alignment of the data. If you discover many reads and writes of a size which is greater than the listed alignment of that operation, the software cache cannot deduce that all the requested data exists on a single cache line, and must go through a slower path to guarantee correctness.
Using this list then to eliminate these reads and writes by either aligning the data to better boundaries, or grouping reads and writes, can yield speed-up.
See /kb/79.html for further information and examples.