4.2. Loops

A loop in Acumem Freja is just what it sounds like, a loop in the program. A for loop in a C program will usually translate to a loop in a Acumem Freja report. However, since Acumem Freja looks at the binary code of the application, the loops seen by Acumem Freja may not always exactly correspond to the loops in the source code.

Since Acumem Freja focuses on memory and cache performance it only lists the memory accesses when listing the instructions in loops, other types of instructions are ignored. However, some instructions that you usually would not consider to be memory accesses are included, for example, function call and return instructions may save and restore the return address on the stack and therefore be included.

Loops may be related to other loops, in the sense that one loop may be contained inside one or more outer loops, just like a for loop in C may be nested inside another for loop. This way a hierarchy of inner and outer loops is created.

Most reported issues are associated with a loop in the application.