I saw that you also can directly generate x86 assembler from ASR (next to C/C++, Julia, Wasm etc.). Did you do performance comparisons how fast the generated x86 code is e.g. compared to the LLVM backend? That would give indication about the effectiveness of the optimization measures you do on ASR level. With that one could quantify the added value of an LLVM backend and weight it to the costs thereof.
I also noticed that you require C++17 for libasr. What is the main reason for this? How much more difficult would the implementation be if you would e.g. restrict on C++11?
I think we only require C++11, I don't think we use anything newer than that. If we do, it wouldn't be difficult to change. I think we use `std::filesystem`, which is C++17, but if that is a problem, we could add some emulation of this for C++11.