L'optimisation du compilateur implique l'adaptation d'un compilateur pour réduire le temps d'exécution ou la taille de l'objet ou les deux. Cela peut être accompli en utilisant des arguments du compilateur (par exemple CFLAGS, LDFLAGS), des plugins de compilateur (DEHYDRA par exemple) ou des modifications directes du compilateur (comme la modification du code source).