Article View: pl.comp.lang.c
Article #309590Re: Zmiana Endiana
From: Wojciech Muła
Date: Tue, 09 Jan 2018 19:01
Date: Tue, 09 Jan 2018 19:01
31 lines
3038 bytes
3038 bytes
On Saturday, January 6, 2018 at 3:44:47 PM UTC+1, M.M. wrote: > On Friday, January 5, 2018 at 10:36:55 PM UTC+1, Wojciech Muła wrote: > > Nie ma potrzeby ich stosowania, taki kod > > [...] > > zostanie przetłumaczony na jeden bswap przez GCC, clanga i MSVC > Niezłe! Aż trudno uwierzyć. > > bswap w językach wysokiego poziomu można zaimplementować na wiele > sposobów, jeśli coś zmienimy w kodzie który podałeś, to też sobie > kompilatory poradzą? > > Można zmienić kolejność, mamy cztery instrukcje, więc silnia(4) już > 24 możliwości. Po drugie, można wrzucić to do shortów, potem zamienić w > shortach i złożyć inta z shortów w odwrotnej kolejności. W wersji z > shortami też można zastosować różną kolejność. W końcu można zrobić > jakąś unię i pola bitówe... Strzelam, że nie wszystkie opcje zostaną rozpoznane. Ale ogólnie to dobre zadanie dla studentów na laboratoria. Albo dla samego siebie, jak się nudzisz. :) > Oni użyli jakiegoś algorytmu który generalnie rozpoznaje że chodzi o > zamianę kolejności, czy mechanicznie rozpoznają jedną procedurę? Podejrzewam, że to jest wykonywane na etapie peephole optimization, czyli wykonuje się pattern matching kilku sąsiednich instrukcji. Weź pod uwagę, że ten etap jest na końcu, kiedy kompilator usunął zbędne instrukcje, znormalizował cały kod itd. w.
Technical Details
Message-ID:
<bc9a022a-bec8-4395-8c0f-6e0213bb57d8@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!g35no3637537qtk.1!news-out.google.com!t48ni1702qtc.1!nntp.google.com!z1no542512qta.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailReferences:
<p2j4cs$g35$1@node1.news.atman.pl> <p2kt3j$pkj$1@gioia.aioe.org> <0f5b01ea-5c24-4585-aa87-f652f629cb95@googlegroups.com> <57b9543f-97df-49ef-8be4-4f271177a837@googlegroups.com> <770725e7-3b21-486e-aeca-b00c54fb5f11@googlegroups.com>Show Full Headers
Complete Article Headers
X-Received: by 10.200.54.104 with SMTP id n37mr11275108qtb.45.1515524513449; Tue, 09 Jan 2018 11:01:53 -0800 (PST) X-Received: by 10.31.48.85 with SMTP id w82mr1749024vkw.11.1515524513193; Tue, 09 Jan 2018 11:01:53 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!news.nask.pl!news.nask.org.pl!news.unit0.net!peer03.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!g35no3637537qtk.1!news-out.google.com!t48ni1702qtc.1!nntp.google.com!z1no542512qta.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.c Date: Tue, 9 Jan 2018 11:01:52 -0800 (PST) In-Reply-To: <770725e7-3b21-486e-aeca-b00c54fb5f11@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=2a01:112f:80d:ee00:d6be:d9ff:fe09:8928; posting-account=VFwkXwoAAADdT4-lLKRZrMYkTjizGoyn NNTP-Posting-Host: 2a01:112f:80d:ee00:d6be:d9ff:fe09:8928 References: <p2j4cs$g35$1@node1.news.atman.pl> <p2kt3j$pkj$1@gioia.aioe.org> <0f5b01ea-5c24-4585-aa87-f652f629cb95@googlegroups.com> <57b9543f-97df-49ef-8be4-4f271177a837@googlegroups.com> <770725e7-3b21-486e-aeca-b00c54fb5f11@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <bc9a022a-bec8-4395-8c0f-6e0213bb57d8@googlegroups.com> Subject: Re: Zmiana Endiana From: Wojciech Muła <wojciech_mula@poczta.onet.pl> Injection-Date: Tue, 09 Jan 2018 19:01:53 +0000 X-Received-Bytes: 3162 X-Received-Body-CRC: 2244960650 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit