🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #309590

Re: Zmiana Endiana

#309590
From: Wojciech Muła
Date: Tue, 09 Jan 2018 19:01
31 lines
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-mail
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>

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