GCC 4.0

 ( begyu | 2005. április 30., szombat - 6:47 )

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

[quote:f9531d3047="selli"]A sebesseg novekese 57% !!
C progiknal nem tapasztaltam javulast.[/quote:f9531d3047]
Jól hangzik! Azért azt is vegyük figyelembe, hogy a 2.95 és a 3.0 között
volt egy óriási lassulás C++ progikra. Nem mértem, csak érzésre. Ha valaki
leméri és nem lenne igazam, akkor visszavonom :))). Axt

Én igazából arra lennék kíváncsi hogy a generált kód sebessége mennyiben változik. Erre tud valaki valami tesztet, vagy módszert a tesztelésre?

[quote:c51f036df4="Beanie"]Én FreeBSD alatt használok 4.1 snapshotot, a 3.4.x-hez mintha még érezhető is lenne a gyorsulás. A fordított programokkal sincsen gond, minden megy szépen, nincsenek fagyások.[/quote:c51f036df4]

Én is beforgattam alá, de szégyen, gyalázat, nem tudom hogy mondjam meg a rendszernek hogy ez legyen a default cc ezentúl... segítenél? Te hogy csináltad? Szeretném a portokat és a kernelt is a 4.1es GCCvel forgatni.
Köszi előre is

CC=gcc41 a /etc/make.conf -ba

"CC=gcc41 a /etc/make.conf -ba"

Nem tudom mennyire okos dolog a rendszert egy nem hozzaadott compilerrel forgatgatni ...

[quote:ff59190316="Rhiannon"]"CC=gcc41 a /etc/make.conf -ba"

Nem tudom mennyire okos dolog a rendszert egy nem hozzaadott compilerrel forgatgatni ...[/quote:ff59190316]

Valóban nem egyértelműen okos dolog, de nekem eddig úgy tűnik, hogy működik.

[quote:6abdab2643="Beanie"][quote:6abdab2643="Rhiannon"]"CC=gcc41 a /etc/make.conf -ba"

Nem tudom mennyire okos dolog a rendszert egy nem hozzaadott compilerrel forgatgatni ...[/quote:6abdab2643]

Valóban nem egyértelműen okos dolog, de nekem eddig úgy tűnik, hogy működik.[/quote:6abdab2643]

Nekem sem a kernel, sem az X nem forog vele. A kernelnél panaszkodik néhány már nem támogatott compiler opcióra, az X meg internal compiler error-t ad.

[quote:135a00da3b="Ochronus"][quote:135a00da3b="Beanie"][quote:135a00da3b="Rhiannon"]"CC=gcc41 a /etc/make.conf -ba"

Nem tudom mennyire okos dolog a rendszert egy nem hozzaadott compilerrel forgatgatni ...[/quote:135a00da3b]

Valóban nem egyértelműen okos dolog, de nekem eddig úgy tűnik, hogy működik.[/quote:135a00da3b]

Nekem sem a kernel, sem az X nem forog vele. A kernelnél panaszkodik néhány már nem támogatott compiler opcióra, az X meg internal compiler error-t ad.[/quote:135a00da3b]

Nem ertem miert a 4.1est hasznaljatok, mikor hivatalosan a 4.0.0 a stabil, a 4.1 meg a development release. :?:

[quote:3212fa697c="selli"]
Nem ertem miert a 4.1est hasznaljatok, mikor hivatalosan a 4.0.0 a stabil, a 4.1 meg a development release. :?:[/quote:3212fa697c]

Igen, tudom, hogy azt kéne használni, csak a múltkori snapshot nem fordult le, most frissült a ports fa, éppen most próbálom megint feltenni.

Egy ket sebesseg teszt:

///////////////////
povray 3.6.1 ( -d -q9 +w600 +h400 +b1000 +r3 +a0.300 +ft -i$POVDIR/scenes/advanced/chess2.pov )
///////////////////

gcc-4.0 -O2 -march=pentium-m -mtune=pentium-m -pipe -fomit-frame-pointer

compile: 0m52.953s
code size: 1267915
run: 1m53.553s
---------
gcc-3.4.3 -O2 -march=pentium-m -mtune=pentium-m -pipe -fomit-frame-pointer

compile: 0m57.558s
code size: 1264162
run: 1m55.676s

A futasi es a forditasi ido is javult (igaz nem olyan jelentosen mint a kde toys eseteben.)

///////////////////////
bzip2 linux-2.6.10.tar.bz
//////////////////////

gcc-3.4.3 ( CFLAGS="-O2 -march=pentium-m -mtune=pentium-m -pipe -fomit-frame-pointer")

decompress
user 0m16.970s
compress
user 1m14.998s
----------------------------
gcc-4.0.0 ( CFLAGS="-O2 -march=pentium-m -mtune=pentium-m -pipe -fomit-frame-pointer)

decompress
0m17.390s
compress linux-2.6.10.tar
1m7.321s

A tomorites sebessege kb 10%-ot gyorsult !

------------------------------
GIMP
------------------------------
gimp-2.2.6 / gcc-3.4.3

CFLAGS="-O3 -march=pentium-m -mtune=pentium-m -pipe -fomit-frame-pointer -funroll-loops -ffast-math"

Despeckle: 6.73
Gaussian-blur 6.02
Motion-blur 5.14
DiffofGaussians 7.12
Unsharp-mask 7.06
Cubism 40.67
Gimpresionist 26.90

----------------------------
gimp-2.2.6 / gcc-4.0

CFLAGS="-O3 -march=pentium-m -mtune=pentium-m -pipe -fomit-frame-pointer -funroll-loops -ffast-math"

Despeckle: 3.69s
Gaussian-blur 4.48s
Motion-blur 5.27s
DiffofGaussians 7.44s
Unsharp-mask 5.32s
Cubism 38.90s
Gimpresionist 17.09s

És még a fájl mérete is kisebb lett egy kicsit, ezt kihagytad. :)

Hali!

Közben megtaláltam a changelogban:
[quote:daecefb659]The cast-as-lvalue, conditional-expression-as-lvalue and compound-expression-as-lvalue extensions, which were deprecated in 3.3.4 and 3.4, have been removed.[/quote:daecefb659]

[quote:147dd9d31f="mb"]Azért nem fogadja el, mert a []-nek nagyobb a precedenciája, mint a castolásnak, ezért a kódód az alábbival egyenlő:
[code:1:147dd9d31f](char *)(rbuff[0]) = 'a';[/code:1:147dd9d31f]
ami nyilván nem jó, mert egy pointernek akarsz egy egész értéket adni. Így kéne inkább írni: [code:1:147dd9d31f]((char *)rbuff)[0] = 'a';[/code:1:147dd9d31f]
Egyébként a gcc 3.3.5 sem fogadja el.[/quote:147dd9d31f]

Köszi! sejtettem, hogy valami ilyen oka van.
Nekem a gcc 3.4.3 még elfogadta.

Sziasztok!

A korábbi gcc-k ezt elfogadták:[code:1:3e6cc3d1db](char *)rbuff[0] = 'a';[/code:1:3e6cc3d1db]
Most azt mondja, hogy érvénytelen balérték.
A castolás nélkül már jó neki.

Szerintetek mi lehet az oka a váltásnak, vagy másként: miért fogadta el eddig?

[quote:602d3d9b27="begyu"]Sziasztok!

A korábbi gcc-k ezt elfogadták:[code:1:602d3d9b27](char *)rbuff[0] = 'a';[/code:1:602d3d9b27]
Most azt mondja, hogy érvénytelen balérték.
A castolás nélkül már jó neki.

Szerintetek mi lehet az oka a váltásnak, vagy másként: miért fogadta el eddig?[/quote:602d3d9b27]

Helló!

Azért nem fogadja el, mert a []-nek nagyobb a precedenciája, mint a castolásnak, ezért a kódód az alábbival egyenlő:
[code:1:602d3d9b27](char *)(rbuff[0]) = 'a';[/code:1:602d3d9b27]
ami nyilván nem jó, mert egy pointernek akarsz egy egész értéket adni. Így kéne inkább írni: [code:1:602d3d9b27]((char *)rbuff)[0] = 'a';[/code:1:602d3d9b27]
Egyébként a gcc 3.3.5 sem fogadja el.

Nem semmi a C++ programok forditasi sebesseg novekedese, eddig ez a legdurvabb:

kdetoys 3.4.0:
gcc-3.4.3 compile:

user 1m55.676s
sys 0m0.288s

gcc-4.0 compile

user 1m13.749s
sys 0m11.536s

A sebesseg novekese 57% !!
C progiknal nem tapasztaltam javulast.

Én FreeBSD alatt használok 4.1 snapshotot, a 3.4.x-hez mintha még érezhető is lenne a gyorsulás. A fordított programokkal sincsen gond, minden megy szépen, nincsenek fagyások.