Compiler: -Variablen, die nie verwendet werden, werden gekickt -Kurze Schleifen werden aufgelöst -Werte werden möglichst lange in Registern gehalten -Multiplikationen durch Shifts ersetzt -Nie erreichbare Codestellen gestrichen (z.B. alles nach einem while(1) )
Linker: -nicht referenzierte Funktionen werden gestrichen
*Klugscheiß* den code nach einer while(1)-schleife darf man auf keinen fall wegwerfen. stell dir nen thread vor, der in einer solchen schleife läuft (hört ne fifo ab oder so). am ende vom programm kommt das break und der restliche code wird abgearbeitet (fifos schließen, was weiß ich). */klugscheiß*
Compiler:
-Variablen, die nie verwendet werden, werden gekickt
-Kurze Schleifen werden aufgelöst
-Werte werden möglichst lange in Registern gehalten
-Multiplikationen durch Shifts ersetzt
-Nie erreichbare Codestellen gestrichen (z.B. alles nach einem while(1) )
Linker:
-nicht referenzierte Funktionen werden gestrichen
Oft gibts ja sowas wie ein
if( DEBUG ) { ...
und davor irgendwo irgendein
static const int DEBUG = 0;
oder ein
#define DEBUG 0
und da moechte man natuerlich nicht, dass der Compiler
im release den debug code mit aufnimmt.
AC