While To For
The while-to-for transformation converts a selected while loop into an equivalent for loop while preserving the original loop semantics. This conversion improves code consistency and enables further compiler optimizations that specifically target for-loop structures. By restructuring loops in a standardized format, this transformation facilitates better loop analysis, enhances readability, and increases the potential for optimizations such as loop unrolling or vectorization.
While-to-for Transformation in emmtrix Studio
emmtrix Studio implements while-to-for using #pragma directives or via the GUI. While-to-for is a transformation that replaces selected while block with a for block of the same semantics.
Typical Usage and Benefits
While-ro-for is typically used to allow other for-loop-based transformations and analysis to be performed.
Example
/* The following code tests while-to-for transformation applied to a for loop: */
int main(void) {
int sum = 0;
int i = 0;
#pragma EMX_TRANSFORMATION WhileToFor
while (i < 10) {
sum += i;
i++;
}
return 0;
}
|
/* The generated code:*/
int main(void) {
int sum = 0;
int i;
for (i = 0; i < 10; i = i + 1) {
sum += i;
}
return 0;
}
|