public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug fortran/48997] New: Don't use allocatable arrays for function elimination @ 2011-05-14 10:28 tkoenig at gcc dot gnu.org 2015-05-16 12:35 ` [Bug fortran/48997] " tkoenig at gcc dot gnu.org ` (2 more replies) 0 siblings, 3 replies; 4+ messages in thread From: tkoenig at gcc dot gnu.org @ 2011-05-14 10:28 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48997 Summary: Don't use allocatable arrays for function elimination Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassigned@gcc.gnu.org ReportedBy: tkoenig@gcc.gnu.org Blocks: 36854 After revision 173752, double occurrence of functions returning arrays within an expression are removed using an allocatable array as temporary. It would be better to use BLOCK variables. Example: Transform function optmatmul (a, b, ni, nj) implicit none integer, intent(in) :: ni, nj double precision :: optmatmul(ni, nj) double precision, intent(in) :: a(ni, nj), b(ni, nj) optmatmul = matmul(a, b) / (1 + matmul(a, b)) end function optmatmul (the test case from PR 22572) to function optmatmul (a, b, c, m, n, count) implicit none integer, intent(in) :: m, n, count double precision :: optmatmul(m, n) double precision, intent(in) :: a(m, count), b(count, n), c(m, n) block double precision, dimension(size(a,1), size(b,2)) :: tmp tmp = matmul(a,b) optmatmul = tmp / (1 + tmp) end block end function optmatmul We would probably need argument mapping for this. Issues to be resolved: - This is complicated, especially for intrinsics which take their return size from their arguments - Especially ugly: pack - Also not nice: dim=n arguments where n is a variable - We would need a way to handle functions in argument lists specifying return dimensions, which we have to keep from being evaluated twice (not a likely corner case, but we have to be correct...) ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug fortran/48997] Don't use allocatable arrays for function elimination 2011-05-14 10:28 [Bug fortran/48997] New: Don't use allocatable arrays for function elimination tkoenig at gcc dot gnu.org @ 2015-05-16 12:35 ` tkoenig at gcc dot gnu.org 2015-10-13 13:38 ` dominiq at lps dot ens.fr 2015-10-14 11:56 ` tkoenig at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: tkoenig at gcc dot gnu.org @ 2015-05-16 12:35 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48997 Bug 48997 depends on bug 66113, which changed state. Bug 66113 Summary: Variable n cannot appear in the expression with nested blocks https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66113 What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug fortran/48997] Don't use allocatable arrays for function elimination 2011-05-14 10:28 [Bug fortran/48997] New: Don't use allocatable arrays for function elimination tkoenig at gcc dot gnu.org 2015-05-16 12:35 ` [Bug fortran/48997] " tkoenig at gcc dot gnu.org @ 2015-10-13 13:38 ` dominiq at lps dot ens.fr 2015-10-14 11:56 ` tkoenig at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: dominiq at lps dot ens.fr @ 2015-10-13 13:38 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48997 Dominique d'Humieres <dominiq at lps dot ens.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING Last reconfirmed| |2015-10-13 Ever confirmed|0 |1 --- Comment #2 from Dominique d'Humieres <dominiq at lps dot ens.fr> --- > Thomas, what is the status of this? PING! ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug fortran/48997] Don't use allocatable arrays for function elimination 2011-05-14 10:28 [Bug fortran/48997] New: Don't use allocatable arrays for function elimination tkoenig at gcc dot gnu.org 2015-05-16 12:35 ` [Bug fortran/48997] " tkoenig at gcc dot gnu.org 2015-10-13 13:38 ` dominiq at lps dot ens.fr @ 2015-10-14 11:56 ` tkoenig at gcc dot gnu.org 2 siblings, 0 replies; 4+ messages in thread From: tkoenig at gcc dot gnu.org @ 2015-10-14 11:56 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48997 Thomas Koenig <tkoenig at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #3 from Thomas Koenig <tkoenig at gcc dot gnu.org> --- Hi Dominique, I am currently not working on this. It is worth keeping around for partial implementation at least, if I can find the time and/or somebody else starts working on the front end passes. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2015-10-14 11:56 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-05-14 10:28 [Bug fortran/48997] New: Don't use allocatable arrays for function elimination tkoenig at gcc dot gnu.org 2015-05-16 12:35 ` [Bug fortran/48997] " tkoenig at gcc dot gnu.org 2015-10-13 13:38 ` dominiq at lps dot ens.fr 2015-10-14 11:56 ` tkoenig at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).