-
Data: 2010-05-27 21:56:20
Temat: Re: GCC - jak działa?
Od: Adam Piotrowski <k...@i...pl> szukaj wiadomości tego autora
[ pokaż wszystkie nagłówki ]W dniu 2010-05-27 12:47, l...@l...lon pisze:
> Witam,
>
> Czy ktoś może wie jaki jest schamet działania kompilatora GCC dla języka C?
> Tzn. jakie są przebiegi? Na pewno jest preprocesor, potem komilacja
> do *.s i linkowanie.
>
> Interesuje mnie kompilacja: czy można zoabczyć etap przejściowy, np.
> rozkład leksykalny czy też dzieje się to tylko wewnątrz kompilatora i z kodu
> źródłowego w C są od razu generowane isntrukcje assemblera?
>
> Pozdrawiam,
> Marcin
>
>
Hej
1) Rozklad leksykalny i skladniowy robione sa za pomoca specjalizowanych
funkcji dostosowanych do skladni C.
2) Z rozkladu leksyklanego to raczej za duzo nie zobaczysz, chociaz moge
sie mylic - jak bawilem sie kodem gcc to nie zwracalem uwagi na te
etapy, trzeba zerknac do kodu lub do GCC internals
3) Nie, z kodu C nie generujesz kodu assemblera, jakby tak bylo
musialbys zmieniac caly kompilator w przypadku portowania do innych
architektur nic x86
4) Front end - zajmuje sie analiza leksykalna i skladniowa, zalezny od
jezyka, niezalezny od architektury docelowej
Middle end - zajmuje sie optymalizacja - niezalezny do jezyka i architektury
Back end - nie zalezny od jezyka, zalezny od architekrury (przynajmniej
tak jest w teorii)
5) C -> GENERIC -> GIMPLE -> (SSA w przypadku optymalizacji - > GIMPLE)
-> RTL -> assembler : takie sa reprezentacje posrednie stosowane podczas
kompilacji
6) skompiluj sobie program (pod Linuxem) z parametrem -fdump-tree-all
aby zobaczyc jakie przeksztalcenia sa robione podczas optymalizacji kodu
na poziomie drzew. Ogolnie masz sporo opcji opisanych w rozdziale "3.9
Options for Debugging Your Program or GCC" w manualu do gcc
Adam
Następne wpisy z tego wątku
- 28.05.10 00:18 Adam Piotrowski
- 28.05.10 20:59 A...@g...com
Najnowsze wątki z tej grupy
- Rosjanie chwalą się prototypem komputera kwantowego. "Najważniejszy projekt naukowy Rosji"
- A Szwajcarzy kombinują tak: FinalSpark grows human neurons from stem cells and connects them to electrode arrays
- Re: Najgorszy język programowania
- NOWY: 2025-09-29 Alg., Strukt. Danych i Tech. Prog. - komentarz.pdf
- Na grupie comp.os.linux.advocacy CrudeSausage twierdzi, że Micro$lop używa SI do szyfrowania formatu dok. XML
- Błąd w Sofcie Powodem Wymiany 3 Duńskich Fregat Typu Iver Huitfeldt
- Grok zaczął nadużywać wulgaryzmów i wprost obrażać niektóre znane osoby
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
Najnowsze wątki
- 2026-01-06 I kolejny
- 2026-01-06 Retro organizer ale współcześnie
- 2026-01-06 Bowling
- 2026-01-06 Cyganie
- 2026-01-06 Rozwód w Santanderze z prostokątną kobietą...
- 2026-01-06 Skąd diody LED 1,5V?
- 2026-01-06 Nowum!!! -- Moje ID
- 2026-01-06 Metoda na fotoradar
- 2026-01-05 I jeszcze jeden
- 2026-01-05 Jaworek;)
- 2026-01-05 Warszawa => Project Manager (AI and innovation) <=
- 2026-01-05 Gdańsk => Konsultant ERP Microsoft Dynamics 365 Commerce <=
- 2026-01-05 Jeśli nie było "aktu wojny" to była "zorganizowana grupa przestępcza" (terroryści) dokonująca zabójstw?
- 2026-01-05 Walka Lewicy o B2B na etat
- 2026-01-05 zamiana B2B na etat




5 Najlepszych Programów do Księgowości w Chmurze - Ranking i Porównanie [2025]