Reviving rename flang-new to flang

The bar I proposed before enabling flang to easily generate executables had three components. First, unimplemented features should present a meaningful message that referred back to the source code. Second, programs that compile ought to run as expected; the compiler should not force people to debug mis-compiled executables. Third, performance should be reasonably good without terrible outliers.

The first goal is in good shape for standard Fortran features. I don’t know if the OpenMP and OpenACC implementation have done the same. I expect that most Fortran codes will use one or the other. It is important to present the not-yet-implemented features in a good light.

The second goal is not fully implemented. There are semantically correct programs that execute incorrectly today which will be addressed as part of HLFIR. Also, there are issues with optimization, say at -O2, where bugs still exist. Fortran users expect optimizations to work.

The third goal is in reasonable shape but not finished. There are still some major outliers on standard benchmarks that will be addressed with the HLFIR work plus some optimization. Others are working on specific optimizations to bring flang inline with other compilers, e.g. inlining array intrinsics.

Who would be served by this change to flang? Not developers working on flang who can use what’s there today. It’s not onerous; it’s just cryptic. Not Fortran programmers who want to run their code. The “not yet implemented” messages are great, but they don’t run code. No one wants to debug runtime errors caused by mis-compilation, especially when the problems are known & fixes are in the pipeline. Good performance is expected from compiled Fortran programs.

The many contributors to flang continue to work hard to develop and deliver a great Fortran compiler. Making it easily available before it is ready has the potential to create negative feelings that will persist for years. Fortran developers have other free high-quality implementations available to them now.

I hope the community agrees & we delay this change.

1 Like