We were flattening in one case (perigeeSurface) but in my understanding only for
debug builds (special trick from @ssnyder compiling the code with opt even in debug build and using attribute
The issue is "opt" does not "flatten" (actually the aim of the flatten is to inline the Eigen code)
either with gcc11...
Before this MR in opt
After the MR in opt
ping @ssnyder so as to take a look
For completeness I noticed this here first so have an example handy
- clang 14 https://godbolt.org/z/YYh3adKTx
- gcc 11 https://godbolt.org/z/TYWTbn5Ye
- gcc 11 (flatten) https://godbolt.org/z/597Pnjfc9
- gcc 8 https://godbolt.org/z/b8xMavcEG
So this "inlining" is something that clang does (also previous versions) but gcc stopped doing...
"This" -> is inline certain 5x5 matrix operations it seems .