[flang][NFC] move constant lowering into its own unit
This patch moves intrinsic evaluate::Constant<T> lowering into its own unit outside of ScalarExpr and genarr lowering so that it can be used by the new lowering without any changes. DerivedType lowering cannot be shared at that stage because it is too correlated with the current lowering (requires structure constructor and designator lowering). The code had to be refactored quite a bit so that it could be carved out, but the only "functional" change is that the length of character arrays lowered by genarr is now `index` instead of `i64` (see test change). One non-functional benefit of the change is that `toEvExpr` is not needed anymore and some compile time copies of big constant arrays that it was causing are removed (see old calls in previous genarr code), although I am not sure any compile time speed-ups are visible here. Differential Revision: https://reviews.llvm.org/D136955
Loading
Please sign in to comment