public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug fortran/48543] New: Collapse identical strings
@ 2011-04-10 18:31 tkoenig at gcc dot gnu.org
  2011-04-11 10:05 ` [Bug fortran/48543] " jb at gcc dot gnu.org
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2011-04-10 18:31 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48543

           Summary: Collapse identical strings
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Keywords: missed-optimization
          Severity: enhancement
          Priority: P3
         Component: fortran
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: tkoenig@gcc.gnu.org


The two programs yield identical results. The second program
results in a shorter object file because the 

ig25@linux-fd1f:~/Krempel/String> cat foo.f90
program main
  character(len=17) :: a
  character(len=34) :: b
  a = 'Supercalifragilis'
  b = 'Supercalifragilisticexpialidocious'
  print *,a," ",b
end program main
ig25@linux-fd1f:~/Krempel/String> cat bar.f90
program main
  character(len=17) :: a
  character(len=34) :: b
  a = 'Supercalifragilisticexpialidocious'
  b = 'Supercalifragilisticexpialidocious'
  print *,a," ",b
end program main
ig25@linux-fd1f:~/Krempel/String> gfortran -c -Os foo.f90
ig25@linux-fd1f:~/Krempel/String> gfortran -c -Os bar.f90
ig25@linux-fd1f:~/Krempel/String> ls -l foo.f90 bar.f90
-rw-r--r-- 1 ig25 users 184 10. Apr 19:02 bar.f90
-rw-r--r-- 1 ig25 users 167 10. Apr 19:01 foo.f90
g25@linux-fd1f:~/Krempel/String> strings foo.o | grep Super
SupercalifragilisSupercalifragilisticexpialidocious
ig25@linux-fd1f:~/Krempel/String> strings bar.o | grep Super
Supercalifragilisticexpialidocious

This is an optimization that could be done for -Os, at least.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/48543] Collapse identical strings
  2011-04-10 18:31 [Bug fortran/48543] New: Collapse identical strings tkoenig at gcc dot gnu.org
@ 2011-04-11 10:05 ` jb at gcc dot gnu.org
  2011-11-08  7:44 ` fxcoudert at gcc dot gnu.org
  2012-06-07 14:59 ` tkoenig at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: jb at gcc dot gnu.org @ 2011-04-11 10:05 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48543

Janne Blomqvist <jb at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jb at gcc dot gnu.org

--- Comment #1 from Janne Blomqvist <jb at gcc dot gnu.org> 2011-04-11 10:04:50 UTC ---
For string constants, I agree, though I doubt whether it's worth the bother.

For string variables, I think this would be a mistake. Review the long and
sordid history of COW implementations of the C++ std::string type for arguments
why.


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/48543] Collapse identical strings
  2011-04-10 18:31 [Bug fortran/48543] New: Collapse identical strings tkoenig at gcc dot gnu.org
  2011-04-11 10:05 ` [Bug fortran/48543] " jb at gcc dot gnu.org
@ 2011-11-08  7:44 ` fxcoudert at gcc dot gnu.org
  2012-06-07 14:59 ` tkoenig at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: fxcoudert at gcc dot gnu.org @ 2011-11-08  7:44 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48543

Francois-Xavier Coudert <fxcoudert at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2011-11-08
                 CC|                            |fxcoudert at gcc dot
                   |                            |gnu.org
     Ever Confirmed|0                           |1


^ permalink raw reply	[flat|nested] 4+ messages in thread

* [Bug fortran/48543] Collapse identical strings
  2011-04-10 18:31 [Bug fortran/48543] New: Collapse identical strings tkoenig at gcc dot gnu.org
  2011-04-11 10:05 ` [Bug fortran/48543] " jb at gcc dot gnu.org
  2011-11-08  7:44 ` fxcoudert at gcc dot gnu.org
@ 2012-06-07 14:59 ` tkoenig at gcc dot gnu.org
  2 siblings, 0 replies; 4+ messages in thread
From: tkoenig at gcc dot gnu.org @ 2012-06-07 14:59 UTC (permalink / raw)
  To: gcc-bugs

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48543

--- Comment #2 from Thomas Koenig <tkoenig at gcc dot gnu.org> 2012-06-07 14:58:38 UTC ---
I'll do a bit of work on that, because it can also be useful
for reducing memcpy/memset pairs.

Consider

  character(len=3) :: a
  character(len=4) :: b
  a = 'a'
  b = 'a'

This could be changed into (in a first pass)

  a = 'a   '
  b = 'a    '

for a simple assignment, but this would mean duplicate strings.
Better to change this into

  a = 'a    '
  b = 'a    '


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2012-06-07 14:59 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-04-10 18:31 [Bug fortran/48543] New: Collapse identical strings tkoenig at gcc dot gnu.org
2011-04-11 10:05 ` [Bug fortran/48543] " jb at gcc dot gnu.org
2011-11-08  7:44 ` fxcoudert at gcc dot gnu.org
2012-06-07 14:59 ` 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).