Schlank heißt hier: uralt. GCC 2.5 oder 2.6 müßte die letzte für SingleTOS gewesen sein, aus meiner Erinnerung.
2.95 gab es auch noch. Wurde am Anfang wohl auch noch für Mint verwendet. Allerdings ist man dann auch an alte Libraries gebunden, neuere kriegt damit ohne ziemlichen Aufwand nicht mehr übersetzt.
Anderes habe ich selbst nie angeguckt,
Ich hab schon öfter mal Pure-C mit gcc verglichen. Hängt immer sehr vom Anwendungszweck ab, mal hat der eine die Nase vorn, mal der andere. Pure-C ist denke ich vor allem bei 68k durch die Register-Übergabe der Parameter im Vorteil, das spart einiges an Code und Speicher-Zugriffen.
Zeitschriftentests zufolge hat PureC auch bspw LaserC, Megamax C ziemlich in den Boden gestampft.
Naja das ist auch kein Wunder, die genannten waren auch nicht viel besser in der Codegenerierung als Alcyon. Nicht mal automatische Register-Zuweisung haben sie hinbekommen, das musste man alles selber explizit angeben.
und wieviel Plattform-unabhängig,
Ich würde schätzen mindestens 90% davon ist plattform (und sogar Sprachen)- unabhängig. Der plattform-abhängige Teil macht eigentlich nur noch peephole-Optimierungen (bestimmte Befehlsfolgen durch andere ersetzen).
das klappt schon bei manchen Kombinationen von Multiplikationen nicht, woraus man billige Additionen machen könnte.
Das hängt in den meisten Fällen vom Compiler-Schalter -G (Size-Optimierung) ab. Gesetzt wird dann normalerweise muls/mulu genommen, wenn nicht, und einer der Operatoren konstant ist, eine Folge von Additionen. Könnte auch noch von anderen Bedingugne abhängen (z.B. wieviel Bits in der Konstante gesetzt sind; ausserdem wird dafür ein temporäres Register benötigt), aber grundsätzlich beherrscht Pure-C diese Optimierung.
Haupt-Problem bei Pure-C ist eigentlich nicht die Code-Optimierung, sondern die Tatsache daß er nur 16bit ints kennt. Das macht es schwer bis fast unmöglich, heutige Programme damit zu benutzen.