[PROPOSAL] Rename `flang-new` to `flang`

Classic Flang is a fine compiler in its own right. For reasons detailed in my lightning talk, we decided to abandon it in favor of LLVM Flang (aka “f18”); chief among those was the difficulty that we were having extending the data structures to handle modern Fortran.

Right now, Classic Flang has more breadth than LLVM Flang. Chances are that an existing Fortran program will work fine with Classic Flang but it’s likely that the same program would trigger some “not-yet-implemented” messages when run with LLVM Flang.

LLVM Flang is more robust than Classic Flang. The front end can handle almost any program that we throw at it. Language features are implemented deeper and better when measured by objective testing.

LLVM Flang lags in lowering and code generation. That’s where the “not-yet-implemented” messages are generated. What is implemented is very robust and what isn’t implemented is tracked in a public spreadsheet.

For example, Classic Flang compiles the SPEC 2017 benchmarks and the runtime performance is very good. LLVM Flang can’t compile all of SPEC 2017 because of several “not-yet-implemented” features. Also, for those benchmarks that can be compiled, sometimes performance is bad.

The performance issues are being addressed as part of the HLFIR work that has been mentioned elsewhere. For NVIDIA’s part, most of our effort is being directed to completing lowering to HLFIR, FIR, and MLIR.

So if you want to compile and execute real Fortran programs, the future hasn’t quite arrived.

1 Like