[RFC] libstdc++ atomicity, x86 agnostic version
Paolo Carlini
pcarlini@suse.de
Thu Feb 26 09:58:00 GMT 2004
Benjamin Kosnik wrote:
>Using Jakub's test:
>
>#include <string>
>
>using namespace std;
>
>bool b = true;
>const string s = "abc";
>
>void foo(string &x)
>{ }
>
>int main (void)
>{
> for (int i = 0; i < 10000000; ++i)
> {
> string t = s;
> foo(t);
> }
>}
>
>
Well, it looks like part of the test is bogus (sorry Jakub!) since the
argument x of foo is a reference and therefore no constructions and
destructions take place...
>I get:
>
>%time ./gcc-3.4-atomic.exe
>1.740u 0.000s 0:01.79 97.2% 0+0k 0+0io 166pf+0w
>1.750u 0.000s 0:01.76 99.4% 0+0k 0+0io 166pf+0w
><bkoz@roscoe> /home/bkoz/string_tests
>%time ./gcc-3.4.exe
>1.560u 0.010s 0:01.59 98.7% 0+0k 0+0io 165pf+0w
>1.580u 0.000s 0:01.59 99.3% 0+0k 0+0io 165pf+0w
><bkoz@roscoe> /home/bkoz/string_tests
>%time ./gcc-3.3.2.exe
>1.660u 0.000s 0:01.67 99.4% 0+0k 0+0io 203pf+0w
>1.650u 0.000s 0:01.66 99.3% 0+0k 0+0io 203pf+0w
>
>
I see. Seems something reasonable for 3.4...
However, I would really like to carry out some tests myself (also in the
light of the observation above): unfortunately, after having applied
your patch and regenerated everything (aclocal - autoconf - autoheader -
automake from the top libstdc++-v3 dir) I'm getting:
make[3]: Leaving directory
`/home/paolo/Gcc/cvs-dirs/gcc-head-build/i686-pc-linux-gnu/libstdc++-v3'
Making all in include
make[3]: Entering directory
`/home/paolo/Gcc/cvs-dirs/gcc-head-build/i686-pc-linux-gnu/libstdc++-v3/include'
make[3]: *** No rule to make target
`/home/paolo/Gcc/cvs-dirs/gcc-head/gcc/libstdc++-v3/include/bits/atomicity.h',
needed by `stamp-bits'.
Stop.
make[3]: Leaving directory
`/home/paolo/Gcc/cvs-dirs/gcc-head-build/i686-pc-linux-gnu/libstdc++-v3/include'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory
`/home/paolo/Gcc/cvs-dirs/gcc-head-build/i686-pc-linux-gnu/libstdc++-v3'
make[1]: *** [all] Error 2
make[1]: Leaving directory
`/home/paolo/Gcc/cvs-dirs/gcc-head-build/i686-pc-linux-gnu/libstdc++-v3'
make: *** [all-target-libstdc++-v3] Error 2
What I'm doing wrong?
Thanks,
Paolo.
More information about the Libstdc++
mailing list