Better feedback from the compiler how it optimizes things
Problem statement
Some compilers compile array based expressions into slower code than explicit loops. Sometimes compilers do not vectorize loops, but do not provide very detailed information why the loop was not vectorized.
Solution
The solution to these and many other similar issues is for the compiler to provide high quality feedback to the develop about how it optimizes things or why things cannot be optimized.
Details
LFortran first transforms the code to an ASR. In the future it will transform the ASR to a simpler ASR, for example it will rewrite array expressions into explicit loops, and even try to rewrite the loops to vectorized form. Then with a proper compiler option it will be able to tell the developer exactly how the ASR looks like after optimizations (and it can print it either in the ASR specific language, or transform back to Fortran code). If the compiler cannot optimize something that it should, the developer can file a bug report.
This will be a much nice report, than looking at the assembly code that the compiler generates, because many times developers just want to make sure that the compiler understands the array expression and transforms it into the expected loop structure. The same with transforming the loop structure into a vectorized form. How the final loop gets transformed to LLVM and eventually to machine code is another problem, and feedback there would also be helpful, but there is a lot of useful feedback that should happen on the ASR level itself, before things get transformed to LLVM.