• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    XCHAOSANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API
    REDGUY
    REDGUY --- ---
    DAVIDOWITCH: ad ten XOR reg, reg; Tohle je presne duvod, proc je celej x86 a compatible v prdeli. - jo, to me vzdycky pobavi, ta predstava ze soucasny nekolika GHz hyperthreadovy multijadrovy superpipelinovany x64 procesory jsou s primhourenim oci kompatibilini jeste s prastarou 8008 8)
    XCHAOS
    XCHAOS --- ---
    NE0: viz předchozí. na 64bit CPU to dělá (ale s tou zvláštnůstkou, že s -O3 to "anuluje" tu popisovanou zvláštnůstku), na 32bit to nedělá (asi ani tu první zvláštnůstku)
    NE0
    NE0 --- ---
    XCHAOS: To by me asi zajimalo, ja jsem na 32b, Linux version 3.3.5-1-ARCH (tobias@T-POWA-LX) (gcc version 4.7.0 20120505 (prerelease) (GCC) ) #1 SMP PREEMPT Tue May 8 05:10:33 UTC 2012
    A zcela jasne to potvrzuje, ze "popravdě... nemít přístup k Debian-style systému, kde bylo provedeno apt-get install build-essential znamená být v tomto klubu offtopic. fakt sorry..." opravdu VUBEC neresi, ze ten ASM vystup pak ma kazdej stejne uplne jinej, ze jo...
    XCHAOS
    XCHAOS --- ---
    REDGUY: pardon. seeduje to pořád tím samým :-)
    XCHAOS
    XCHAOS --- ---
    (pro rejpaly: tartarus a tartaros jsou aliasy pro ten samý stroj, jsme u nás ve své mytologické úchylce řecko-římsky kompatibilní)
    XCHAOS
    XCHAOS --- ---
    ugh, heh... tak na 32 bitovém eee to nedělá:

    xchaos@odysseus:~/svn$ scp tartaros:test.c .
    xchaos@tartaros's password:
    test.c 100% 4928 4.8KB/s 00:00
    xchaos@odysseus:~/svn$ gcc -O2 test.c -otest
    xchaos@odysseus:~/svn$ ./test
    Sum: -548636792
    Time: 3.85133
    xchaos@odysseus:~/svn$ ./test WTF
    Sum: -548636792
    Time: 3.49321
    xchaos@odysseus:~/svn$ gcc -O3 test.c -otest
    xchaos@odysseus:~/svn$ ./test
    Sum: -548636792
    Time: 3.26296
    xchaos@odysseus:~/svn$ ./test WTF
    Sum: -548636792
    Time: 3.93193
    xchaos@odysseus:~/svn$ cat /proc/version
    Linux version 2.6.38-15-generic (buildd@panlong) (gcc version 4.5.2 (Ubuntu/Linaro 4.5.2-8ubuntu4) ) #61-Ubuntu SMP Tue Jun 12 19:15:11 UTC 2012
    xchaos@odysseus:~/svn$ gcc --version
    gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    REDGUY
    REDGUY --- ---
    XCHAOS: vtipné je, jak ten kód ničím neseeduje ten random generátor, hehe - huh? A co podle tebe dela srand(1337); na radku 30 ?
    XCHAOS
    XCHAOS --- ---
    NE0: viz [ XCHAOS @ ANSI C/C99 (specifikace), GNU C (gcc, glibc), Tiny C (tcc) a POSIX - ne nutně C++,g++,libstdc++ nebo Win32 API ] - u mě se to pro -O2 fakt chová jinak, než pro -O3 ... můžu to zkusit ještě na svým notebooku, ten není 64bit
    REDGUY
    REDGUY --- ---
    XCHAOS:
    $ gcc --version
    i686-apple-darwin11-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.15.00)
    Copyright (C) 2007 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    
    XCHAOS
    XCHAOS --- ---
    (vtipné je, jak ten kód ničím neseeduje ten random generátor, hehe :-)
    XCHAOS
    XCHAOS --- ---
    REDGUY: ok, to vysvětluje hodně z tvých ostatních charakterových vlastností :-) ale to je tu offtopic, takže končím (prozradíš, čím si si to tedy kompiloval ty?)
    REDGUY
    REDGUY --- ---
    XCHAOS: že tuto konkrétní prerekvzitu splňuje - nesplnuju, protoze mam Maca 8)))
    NE0
    NE0 --- ---
    [neo@neovo ~]$ gcc -O2 test.c
    [neo@neovo ~]$ ./a.out
    Sum: -548636792
    Time: 0.486758
    [neo@neovo ~]$ ./a.out WTF
    Sum: -548636792
    Time: 0.505649
    [neo@neovo ~]$ gcc -O3 test.c
    [neo@neovo ~]$ ./a.out
    Sum: -548636792
    Time: 0.499573
    [neo@neovo ~]$ ./a.out WTF
    Sum: -548636792
    Time: 0.510791

    O3 optimalizace je na tomhle prikladu tak uzitecna, ze jinak pojmenuje labely (pro XLAMY: gcc -O3 -S test.c -o testO3.s; gcc -O2 -S test.c -o testO2.s; diff testO3.s testO2.s). Fakt by me zajimalo, do jakych spiral ses s tim O3 zase zamotal...
    XCHAOS
    XCHAOS --- ---
    NE0: mě to taky nejde narozum... ale:




    xchaos@tartarus:~$ gcc -O2 test.c -otest
    xchaos@tartarus:~$ ./test WTF
    Sum: 403504454559365000
    Time: 0.450687
    xchaos@tartarus:~$ ./test
    Sum: 403504454559365000
    Time: 2.36595
    xchaos@tartarus:~$ ./test WTF
    Sum: 403504454559365000
    Time: 0.475942
    xchaos@tartarus:~$ ./test
    Sum: 403504454559365000
    Time: 2.49658

    FYI

    xchaos@tartarus:~$ cat /proc/version
    Linux version 2.6.32-5-amd64 (Debian 2.6.32-45) (dannf@debian.org) (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Sun May 6 04:00:17 UTC 2012
    xchaos@tartarus:~$ gcc --version
    gcc (Debian 4.4.5-8) 4.4.5
    Copyright (C) 2010 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions. There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: dal jsem to už i do záhlaví, sorry :-) navzdory tomu, jak moc mi občas štve troll REDGUY, tak musím přiznat, že tuto konkrétní prerekvzitu splňuje (tedy občas se fakt šťourá v nějakých C ptákovinkách a přeloží si je)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Asi sem te hricce venoval vic casu nez mas k dispozici, tak te tim nebudu zatezovat.

    XCHAOS: Tvoje velmi fluidni definice toho co je on a off topic mne uz taky serou.
    Takze to je ANSI C/C99 v podani gcc na Debian-style boxu? Co kdyz mame BSD? Nebo Gentoo? Nebo ArchLinux? Nebo pouzivam ICC, protoze GCC je pomalej kram?
    XCHAOS
    XCHAOS --- ---
    (no jo rejpalové... si to samozřejmě kompilujte i na CentOSu nebo Gentoo, když musíte... jen jsem chtěl poskytnout vodítko začátečníkům, co mají nějaké to Ubuntu nebo Mint a chtějí rychle přejít ke kompilaci ukázkových C zdrojáků...)

    je to přesněji řečeno sudo apt-get install build-essential (pro úplné Ubuntu-lamy)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: popravdě... nemít přístup k Debian-style systému, kde bylo provedeno apt-get install build-essential znamená být v tomto klubu offtopic. fakt sorry...

    (že jsi to ty, můžu ti udělat nějaký ssh account, možná i celý vlastní OpenVZ virtuál s vlastní IP...)
    XCHAOS
    XCHAOS --- ---
    DAVIDOWITCH: -O3 tedy zřejmě do kódu cpe více cmovge instrukcí, než ostatní optimalizace? :-)
    DAVIDOWITCH
    DAVIDOWITCH --- ---
    XCHAOS: Vsechno tohle bylo mnohem delsi nez to prelozit s -s a hodit na pastebin. Ale, u tebe sem si uz zvykl..
    Kliknutím sem můžete změnit nastavení reklam