Window: Refinement Reports
- Dependencies analysis (optional) -For safety purposes, the compiler is often conservative when assuming data dependencies. Run a Dependencies analysis to check for real data dependencies in loops the compiler did not vectorize because of assumed dependencies. If real dependencies are detected, the analysis can provide additional details to help resolve the dependencies. Your objective: Identify and better characterize real data dependencies that could make forced vectorization unsafe.For more details, see .
- Memory Access Patterns (MAP) analysis (optional) -Run a MAP analysis to check for various memory issues, such as non-contiguous memory accesses and unit stride vs. non-unit stride accesses. Your objective: Eliminate issues that could lead to significant vector code execution slowdown or block automatic vectorization by the compiler.For more details, see Investigate Memory Usage and Traffic
Site Report Pane
- Site Locationlists names of the analyzed loops, names of the files with the source code, as well as the number of the line where the loop is invoked
- Loop-Carried DependenciesSummarizes presence or absence of dependencies across iterations (loop-carried dependencies). Dependency types:
- RAW - read after write (flow dependency)
- WAR - write after read (anti dependency)
- WAW - write after write (output dependency)
- Strides DistributionUnit/Constant/Variable stride ratio for the selected site.
- Access Patterninformation about stride types detected in the site.
- Site NameSite Name in case of using source annotations, or sequence id in case of marking loops for deeper analysis in survey report.
- Filterspane - filter analysis data by a variety of criteria, such as module, loop/function, vectorized/non-vectorized.
- Advanced Viewpane - includes the following tabs:
- Recommendations tab - view memory-specific recommendations.