This document describes a new FIR value type (fir.expr) and some new
higher level FIR operations to make lowering to FIR more straightforward
and make pattern matching of high level Fortran concepts (array and
character assignments, character operations, and transformational
intrinsics) easier in FIR.
This should allow implementing the remaining gaps in Fortran 95 features
without increasing the lowering code complexity too much, and get a
clean start for the remaining F2003 and F2018 features.
And the ArrayValueCopy pass will not be needed?