public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug libstdc++/14078] New: Manipulators are slow
@ 2004-02-09  9:30 peturr02 at ru dot is
  2004-02-09  9:44 ` [Bug libstdc++/14078] " peturr02 at ru dot is
                   ` (15 more replies)
  0 siblings, 16 replies; 17+ messages in thread
From: peturr02 at ru dot is @ 2004-02-09  9:30 UTC (permalink / raw)
  To: gcc-bugs

Using manipulators to set ios flags is more than 15x slower than calling
setf directly.

-- 
           Summary: Manipulators are slow
           Product: gcc
           Version: 3.4.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libstdc++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: peturr02 at ru dot is
                CC: gcc-bugs at gcc dot gnu dot org
 GCC build triplet: i686-pc-linux-gnu
  GCC host triplet: i686-pc-linux-gnu
GCC target triplet: i686-pc-linux-gnu


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
@ 2004-02-09  9:44 ` peturr02 at ru dot is
  2004-02-09  9:55 ` falk dot hueffner at student dot uni-tuebingen dot de
                   ` (14 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: peturr02 at ru dot is @ 2004-02-09  9:44 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From peturr02 at ru dot is  2004-02-09 09:44 -------
Created an attachment (id=5706)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=5706&action=view)
Test case

Results for 3.4:

time ./manipspeed manip 100000000
14.13user 0.00system 0:14.13elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (61major+11minor)pagefaults 0swaps
time ./manipspeed setf 100000000
0.76user 0.00system 0:00.75elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (61major+11minor)pagefaults 0swaps
time ./manipspeed direct 100000000
0.75user 0.00system 0:00.74elapsed 100%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (61major+11minor)pagefaults 0swaps
time ./manipspeed call 100000000
5.87user 0.00system 0:05.87elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (61major+11minor)pagefaults 0swaps

Results for 3.3.2:

time ./manipspeed manip 100000000
43.55user 0.21system 0:44.39elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (72major+12minor)pagefaults 0swaps
time ./manipspeed setf 100000000
1.32user 0.03system 0:01.37elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (71major+13minor)pagefaults 0swaps
time ./manipspeed direct 100000000
1.24user 0.01system 0:01.28elapsed 97%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (71major+13minor)pagefaults 0swaps
time ./manipspeed call 100000000
6.97user 0.01system 0:07.08elapsed 98%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (71major+13minor)pagefaults 0swaps

In both cases, the first number is the result of using manipulators:
os << foo;
the second from using setf:
os.setf(ios_base::foo);
the third from a direct call to the manipulator
foo(os);
and the fourth from calling the manipulator indirectly through an inline
function
call(os, foo);
where call is exactly like operator<< for manipulators, except inline:
template<typename C, typename T>
inline std::basic_ostream<C, T>&
call(std::basic_ostream<C, T>& os, std::ios_base&(*pf)(std::ios_base&))
{
	pf(os);
	return os;
}

So it seems manipulators can be made a lot faster just by inlining the
relevant versions of operators << and >>.


-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
  2004-02-09  9:44 ` [Bug libstdc++/14078] " peturr02 at ru dot is
@ 2004-02-09  9:55 ` falk dot hueffner at student dot uni-tuebingen dot de
  2004-02-09 10:41 ` pcarlini at suse dot de
                   ` (13 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: falk dot hueffner at student dot uni-tuebingen dot de @ 2004-02-09  9:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From falk dot hueffner at student dot uni-tuebingen dot de  2004-02-09 09:55 -------
Subject: Re:  Manipulators are slow

"peturr02 at ru dot is" <gcc-bugzilla@gcc.gnu.org> writes:

 
> So it seems manipulators can be made a lot faster just by inlining
> the relevant versions of operators << and >>.

IMHO, we should only do that if it does not increase code size; these
manipulators are usually not very time critical, especially compared
to real I/O.



-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
  2004-02-09  9:44 ` [Bug libstdc++/14078] " peturr02 at ru dot is
  2004-02-09  9:55 ` falk dot hueffner at student dot uni-tuebingen dot de
@ 2004-02-09 10:41 ` pcarlini at suse dot de
  2004-02-09 17:09 ` peturr02 at ru dot is
                   ` (12 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pcarlini at suse dot de @ 2004-02-09 10:41 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pcarlini at suse dot de  2004-02-09 10:41 -------
Ok, I'll try to get a feeling of the code size increase... Thanks!

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pcarlini at suse dot de
                   |dot org                     |
             Status|UNCONFIRMED                 |ASSIGNED
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2004-02-09 10:41:54
               date|                            |


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (2 preceding siblings ...)
  2004-02-09 10:41 ` pcarlini at suse dot de
@ 2004-02-09 17:09 ` peturr02 at ru dot is
  2004-02-10 14:16 ` pcarlini at suse dot de
                   ` (11 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: peturr02 at ru dot is @ 2004-02-09 17:09 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From peturr02 at ru dot is  2004-02-09 17:09 -------
> IMHO, we should only do that if it does not increase code size;

If the compiler where really smart,
os << uppercase;
should be inlined to
os._M_flags |= ios_base::uppercase;

Which should result in both smaller code and faster execution than what
happens currently.

(Currently, the compiler is unable to inline calls through function pointers,
even if the pointee is known at compile time. There is already a report about
this, it's PR3713.)


-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (3 preceding siblings ...)
  2004-02-09 17:09 ` peturr02 at ru dot is
@ 2004-02-10 14:16 ` pcarlini at suse dot de
  2004-02-10 14:22 ` giovannibajo at libero dot it
                   ` (10 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pcarlini at suse dot de @ 2004-02-10 14:16 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pcarlini at suse dot de  2004-02-10 14:16 -------
I'm looking into this and indeed I agree that the performance problem is real.
However, I'm not sure to understand what you are really advocating on the
_library_ side (vs the _compiler_ side). In particular:
  1- The concerned operator<< and operator>> are _already_ inline!
  2- Nothing changes (at least for plain -O2) if the second argument is const&.

Further comments?

Thanks,
Paolo.

-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (4 preceding siblings ...)
  2004-02-10 14:16 ` pcarlini at suse dot de
@ 2004-02-10 14:22 ` giovannibajo at libero dot it
  2004-02-10 15:22 ` peturr02 at ru dot is
                   ` (9 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: giovannibajo at libero dot it @ 2004-02-10 14:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From giovannibajo at libero dot it  2004-02-10 14:22 -------
Paolo, does the optimization problem here looks *exactly* like PR3713? 
Otherwise, can you distill a small testcase showing which code construct in v3 
blocks the inlining?

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |giovannibajo at libero dot
                   |                            |it


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (5 preceding siblings ...)
  2004-02-10 14:22 ` giovannibajo at libero dot it
@ 2004-02-10 15:22 ` peturr02 at ru dot is
  2004-02-10 15:35 ` pcarlini at suse dot de
                   ` (8 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: peturr02 at ru dot is @ 2004-02-10 15:22 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From peturr02 at ru dot is  2004-02-10 15:22 -------
> The concerned operator<< and operator>> are _already_ inline!

This is one of the operators in question (from include/bits/ostream.tcc):

  template<typename _CharT, typename _Traits>
    basic_ostream<_CharT, _Traits>&
    basic_ostream<_CharT, _Traits>::
    operator<<(__ostream_type& (*__pf)(__ostream_type&))
    {
      // _GLIBCXX_RESOLVE_LIB_DEFECTS
      // DR 60. What is a formatted input function?
      // The inserters for manipulators are *not* formatted output functions.
      return __pf(*this);
    }

I don't see "inline" here. Do you?


-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (6 preceding siblings ...)
  2004-02-10 15:22 ` peturr02 at ru dot is
@ 2004-02-10 15:35 ` pcarlini at suse dot de
  2004-02-10 15:55 ` peturr02 at ru dot is
                   ` (7 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pcarlini at suse dot de @ 2004-02-10 15:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pcarlini at suse dot de  2004-02-10 15:35 -------
Yes, I was about to post something: I had looked at the wrong operator<< and
operator>>, those in std_iomanip.h, sorry ;)

However, I still don't understand your considerations about the const argument:
the signature is fixed in 27.6.1.2.3 and 27.6.2.5.3, isn't it?

-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (7 preceding siblings ...)
  2004-02-10 15:35 ` pcarlini at suse dot de
@ 2004-02-10 15:55 ` peturr02 at ru dot is
  2004-02-10 16:09 ` pcarlini at suse dot de
                   ` (6 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: peturr02 at ru dot is @ 2004-02-10 15:55 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From peturr02 at ru dot is  2004-02-10 15:55 -------
> However, I still don't understand your considerations about the const
> argument: the signature is fixed in 27.6.1.2.3 and 27.6.2.5.3, isn't it?

A top level const isn't part of the signature, so
void f(int n)
is the same as
void f(int const n)

In the same way
void f(ios_base& (*pf)(ios_base&))
is the same as
void f(ios_base& (*const pf)(ios_base&))

The only reason I suggested that the argument should be declared const is
that it seems to make a difference in practice (in fact, about 44%). I
don't know why it does though, the compiler should be able to figure out
on it's own that pf isn't modified in the body of the function.


-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (8 preceding siblings ...)
  2004-02-10 15:55 ` peturr02 at ru dot is
@ 2004-02-10 16:09 ` pcarlini at suse dot de
  2004-02-10 17:03 ` gdr at integrable-solutions dot net
                   ` (5 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pcarlini at suse dot de @ 2004-02-10 16:09 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pcarlini at suse dot de  2004-02-10 16:09 -------
> The only reason I suggested that the argument should be declared const is
> that it seems to make a difference in practice (in fact, about 44%). I
> don't know why it does though, the compiler should be able to figure out
> on it's own that pf isn't modified in the body of the function.

These are well known deficiencies of the inliner

  http://gcc.gnu.org/ml/libstdc++/2003-02/msg00302.html

which, I'm told, should be already fixed "automatically" in the tree-ssa
branch. For this reason, I'd rather prefer not adding the "redundant" const
in the signature, even if (thanks for pointing that out!) technically it would
still be conforming. Anyway, I'm going to add to the performance testsuite a
snippet distilled from your manipspeed, so we'll be able to track the issue in
the future. Thanks again for your report.

-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (9 preceding siblings ...)
  2004-02-10 16:09 ` pcarlini at suse dot de
@ 2004-02-10 17:03 ` gdr at integrable-solutions dot net
  2004-02-10 17:08 ` pcarlini at suse dot de
                   ` (4 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: gdr at integrable-solutions dot net @ 2004-02-10 17:03 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From gdr at integrable-solutions dot net  2004-02-10 17:03 -------
Subject: Re:  Manipulators are slow

"pcarlini at suse dot de" <gcc-bugzilla@gcc.gnu.org> writes:

| ------- Additional Comments From pcarlini at suse dot de  2004-02-10 16:09 -------
| > The only reason I suggested that the argument should be declared const is
| > that it seems to make a difference in practice (in fact, about 44%). I
| > don't know why it does though, the compiler should be able to figure out
| > on it's own that pf isn't modified in the body of the function.
| 
| These are well known deficiencies of the inliner
| 
|   http://gcc.gnu.org/ml/libstdc++/2003-02/msg00302.html
| 
| which, I'm told, should be already fixed "automatically" in the tree-ssa
| branch. For this reason, I'd rather prefer not adding the "redundant" const
| in the signature, even if (thanks for pointing that out!) technically it would
| still be conforming. Anyway, I'm going to add to the performance testsuite a
| snippet distilled from your manipspeed, so we'll be able to track the issue in
| the future. Thanks again for your report.

The operator should however be declared inline.

-- Gaby


-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (10 preceding siblings ...)
  2004-02-10 17:03 ` gdr at integrable-solutions dot net
@ 2004-02-10 17:08 ` pcarlini at suse dot de
  2004-02-11 12:09 ` cvs-commit at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: pcarlini at suse dot de @ 2004-02-10 17:08 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pcarlini at suse dot de  2004-02-10 17:08 -------
> The operator should however be declared inline.

Ca va sans dire! ;)

Will post a patch in a few minutes...

Paolo.

-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (11 preceding siblings ...)
  2004-02-10 17:08 ` pcarlini at suse dot de
@ 2004-02-11 12:09 ` cvs-commit at gcc dot gnu dot org
  2004-02-11 15:02 ` cvs-commit at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-02-11 12:09 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-02-11 12:08 -------
Subject: Bug 14078

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	paolo@gcc.gnu.org	2004-02-11 12:08:24

Modified files:
	libstdc++-v3   : ChangeLog 
	libstdc++-v3/include/std: std_istream.h std_ostream.h 
Added files:
	libstdc++-v3/testsuite/performance/27_io: 
	                                          fmtflags_manipulators.cc 

Log message:
	2004-02-10  Paolo Carlini  <pcarlini@suse.de>
	Petur Runolfsson  <peturr02@ru.is>
	
	PR libstdc++/14078
	* include/std/std_istream.h (operator>>(__istream_type& (*)
	(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
	operator>>(ios_base& (*)(ios_base&))): Declare inline.
	* include/std/std_ostream.h (operator<<(__ostream_type& (*)
	(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
	operator<<(ios_base& (*) (ios_base&))): Likewise.
	* testsuite/performance/27_io/fmtflags_manipulators.cc: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&r1=1.2325&r2=1.2326
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/std/std_istream.h.diff?cvsroot=gcc&r1=1.15&r2=1.16
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/std/std_ostream.h.diff?cvsroot=gcc&r1=1.14&r2=1.15
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/performance/27_io/fmtflags_manipulators.cc.diff?cvsroot=gcc&r1=NONE&r2=1.1



-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (12 preceding siblings ...)
  2004-02-11 12:09 ` cvs-commit at gcc dot gnu dot org
@ 2004-02-11 15:02 ` cvs-commit at gcc dot gnu dot org
  2004-02-11 15:05 ` pcarlini at suse dot de
  2004-07-30 19:21 ` cvs-commit at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-02-11 15:02 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-02-11 15:02 -------
Subject: Bug 14078

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	gcc-3_4-branch
Changes by:	paolo@gcc.gnu.org	2004-02-11 15:02:04

Modified files:
	libstdc++-v3   : ChangeLog 
	libstdc++-v3/include/std: std_istream.h std_ostream.h 
Added files:
	libstdc++-v3/testsuite/performance: fmtflags_manipulators.cc 

Log message:
	2004-02-11  Paolo Carlini  <pcarlini@suse.de>
	Petur Runolfsson  <peturr02@ru.is>
	
	PR libstdc++/14078
	* include/std/std_istream.h (operator>>(__istream_type& (*)
	(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
	operator>>(ios_base& (*)(ios_base&))): Declare inline.
	* include/std/std_ostream.h (operator<<(__ostream_type& (*)
	(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
	operator<<(ios_base& (*) (ios_base&))): Likewise.
	* testsuite/performance/fmtflags_manipulators.cc: New.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.2224.2.33&r2=1.2224.2.34
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/std/std_istream.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.15&r2=1.15.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/std/std_ostream.h.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=1.14&r2=1.14.10.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/testsuite/performance/fmtflags_manipulators.cc.diff?cvsroot=gcc&only_with_tag=gcc-3_4-branch&r1=NONE&r2=1.1.2.1



-- 


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (13 preceding siblings ...)
  2004-02-11 15:02 ` cvs-commit at gcc dot gnu dot org
@ 2004-02-11 15:05 ` pcarlini at suse dot de
  2004-07-30 19:21 ` cvs-commit at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: pcarlini at suse dot de @ 2004-02-11 15:05 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pcarlini at suse dot de  2004-02-11 15:05 -------
(Partial, clean) fix committed to mainline and 3_4.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |3.4.0


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


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

* [Bug libstdc++/14078] Manipulators are slow
  2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
                   ` (14 preceding siblings ...)
  2004-02-11 15:05 ` pcarlini at suse dot de
@ 2004-07-30 19:21 ` cvs-commit at gcc dot gnu dot org
  15 siblings, 0 replies; 17+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2004-07-30 19:21 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2004-07-30 19:21 -------
Subject: Bug 14078

CVSROOT:	/cvs/gcc
Module name:	gcc
Branch: 	hammer-3_3-branch
Changes by:	paolo@gcc.gnu.org	2004-07-30 19:21:29

Modified files:
	libstdc++-v3   : ChangeLog.hammer 
	libstdc++-v3/include/std: std_istream.h std_ostream.h 

Log message:
	2004-07-30  Paolo Carlini  <pcarlini@suse.de>
	Petur Runolfsson  <peturr02@ru.is>
	
	PR libstdc++/14078
	* include/std/std_istream.h (operator>>(__istream_type& (*)
	(__istream_type&)), operator>>(__ios_type& (*)(__ios_type&)),
	operator>>(ios_base& (*)(ios_base&))): Declare inline.
	* include/std/std_ostream.h (operator<<(__ostream_type& (*)
	(__ostream_type&)), operator<<(__ios_type& (*)(__ios_type&)),
	operator<<(ios_base& (*) (ios_base&))): Likewise.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/ChangeLog.hammer.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.1.2.27&r2=1.1.2.28
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/std/std_istream.h.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.4.12.3&r2=1.4.12.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/libstdc++-v3/include/std/std_ostream.h.diff?cvsroot=gcc&only_with_tag=hammer-3_3-branch&r1=1.4.32.2&r2=1.4.32.3



-- 


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


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

end of thread, other threads:[~2004-07-30 19:21 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-02-09  9:30 [Bug libstdc++/14078] New: Manipulators are slow peturr02 at ru dot is
2004-02-09  9:44 ` [Bug libstdc++/14078] " peturr02 at ru dot is
2004-02-09  9:55 ` falk dot hueffner at student dot uni-tuebingen dot de
2004-02-09 10:41 ` pcarlini at suse dot de
2004-02-09 17:09 ` peturr02 at ru dot is
2004-02-10 14:16 ` pcarlini at suse dot de
2004-02-10 14:22 ` giovannibajo at libero dot it
2004-02-10 15:22 ` peturr02 at ru dot is
2004-02-10 15:35 ` pcarlini at suse dot de
2004-02-10 15:55 ` peturr02 at ru dot is
2004-02-10 16:09 ` pcarlini at suse dot de
2004-02-10 17:03 ` gdr at integrable-solutions dot net
2004-02-10 17:08 ` pcarlini at suse dot de
2004-02-11 12:09 ` cvs-commit at gcc dot gnu dot org
2004-02-11 15:02 ` cvs-commit at gcc dot gnu dot org
2004-02-11 15:05 ` pcarlini at suse dot de
2004-07-30 19:21 ` cvs-commit 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).