public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/17736] New: Optimization for global initialization with trivial constructors
@ 2004-09-29 19:35 austern at apple dot com
  2004-09-29 20:14 ` [Bug c++/17736] " bangerth at dealii dot org
  2004-09-29 22:26 ` [Bug middle-end/17736] " pinskia at gcc dot gnu dot org
  0 siblings, 2 replies; 3+ messages in thread
From: austern at apple dot com @ 2004-09-29 19:35 UTC (permalink / raw)
  To: gcc-bugs

Consider the following file:
struct X { X() { } };
struct Y { Y() { } };
X x1, x2, x3;
Y y1, y2, y3;

Compiling this to assembly code with -Os, we can see that the compiler is correctly optimizing away 
the do-nothing constructors: nothing is being done for any of these six global objects.  However, the 
compiler still generates a do-nothing mod_init function.  The relevant part of the assembly file is:
.mod_init_func
        .align 2
        .long   __GLOBAL__I_x1
...
__GLOBAL__I_x1:
LFB9:
        blr
LFE9:

At least we're only getting one do-nothing function per translation unit, instead of one per class or one 
per global.  But it would be nice if we didn't get it at all.

-- 
           Summary: Optimization for global initialization with trivial
                    constructors
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: enhancement
          Priority: P2
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: austern at apple dot com
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: powerpc-apple-darwin
  GCC host triplet: powerpc-apple-darwin
GCC target triplet: powerpc-apple-darwin


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


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

* [Bug c++/17736] Optimization for global initialization with trivial constructors
  2004-09-29 19:35 [Bug c++/17736] New: Optimization for global initialization with trivial constructors austern at apple dot com
@ 2004-09-29 20:14 ` bangerth at dealii dot org
  2004-09-29 22:26 ` [Bug middle-end/17736] " pinskia at gcc dot gnu dot org
  1 sibling, 0 replies; 3+ messages in thread
From: bangerth at dealii dot org @ 2004-09-29 20:14 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From bangerth at dealii dot org  2004-09-29 20:14 -------
Confirmed. The same holds for x86-linux, so I remove the target fields 
for this PR. 
 
W. 

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
  GCC build triplet|powerpc-apple-darwin        |
   GCC host triplet|powerpc-apple-darwin        |
 GCC target triplet|powerpc-apple-darwin        |
   Last reconfirmed|0000-00-00 00:00:00         |2004-09-29 20:14:37
               date|                            |


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


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

* [Bug middle-end/17736] Optimization for global initialization with trivial constructors
  2004-09-29 19:35 [Bug c++/17736] New: Optimization for global initialization with trivial constructors austern at apple dot com
  2004-09-29 20:14 ` [Bug c++/17736] " bangerth at dealii dot org
@ 2004-09-29 22:26 ` pinskia at gcc dot gnu dot org
  1 sibling, 0 replies; 3+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-09-29 22:26 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-09-29 22:26 -------
The same can be true of the C code too, I reported this once before for C in a another bug which 
caused an ICE for some target.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|c++                         |middle-end
           Keywords|                            |missed-optimization


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


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

end of thread, other threads:[~2004-09-29 22:26 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-09-29 19:35 [Bug c++/17736] New: Optimization for global initialization with trivial constructors austern at apple dot com
2004-09-29 20:14 ` [Bug c++/17736] " bangerth at dealii dot org
2004-09-29 22:26 ` [Bug middle-end/17736] " pinskia at gcc dot gnu dot 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).