clang

Miroslav Mraz mrazik na volny.cz
Sobota Červenec 30 21:24:06 CEST 2022


Zdravím,
dnešní deštivý den jsem zkusil zasvětit testování překladače clang. A 
vypadá to, že v některých ohledech začíná být lepší než gcc.
Protože píšu většinou v c++, zkusil jsem co to udělá, když napíšu třeba 
výpočet těch koeficientů kubických splajnů přímo v konstruktoru jako 
constexpr. Tedy že se spočítají přímo z konstantní tabulky hodnot už za 
překladu. Není to zase taková legrace, řeší se tam soustava rovnic s 
pásovou maticí, ale jde to najít na webu, takže zas takový problém to 
není. Vycházel jsem z toho, že dnešní překladače, pokud jsou jim známy 
všechny parametry při překladu, provedou výpočet a výsledek uloží.
Není tomu tak. G++, když je ten kód netriviální, tak ho spustí v run 
time a výsledek i když je deklarován jako read only, uloží do RAM. 
Clang++ to však opravdu spočítá při překladu, kód pro tento výpočet 
zahodí a výsledek umí dát do .rodata.
Funguje to jak pro arm (thumb), tak pro avr, u když pro avr se 
koeficienty uloží do RAM místo do flash, ale není divu, práce s flash je 
v avr divná. Ale funguje to.

Používáte někdo clang pro architekturu avr ? Vypadá to, že už není 
označen jako experimental.

Mrazík


Další informace o konferenci Hw-list