4.2. Loops

A loop in 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 Freja report. However, since Freja looks at the binary code of the application, the loops seen by Freja may not always exactly correspond to the loops in the source code.

Since 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.