Цитата(Genadi Zawidowski @ Sep 15 2014, 19:30)

Ну честно скажу, такую "простыню" я пробовал крайне давно засовывать в проект. Сейчас мои флаги выглядят так:
Это вы зря.
Там есть воистину убойные ключи:
Цитата
CFLAGS += -mcall-prologues
CFLAGS += -mstrict-X
CFLAGS += -maccumulate-args
CFLAGS += -flto
CFLAGS += -ffunction-sections
CFLAGS += -fdata-sections
CFLAGS += -mrelax
Первый из них, конечно снижает производительность прошивки в целом, но когда надо впихнуть невпихуемое без него никак...
Вторые два ключика появились в gcc-4.7.0 и тоже работают волшебно.
Собственно как и остальные.
У вас просто нет задачи уложить весьма функциональную прошивку в 8 или 16 килобайт для снижения себестоимости серийного изделия.
Поэтому вы и не используете всевозможные оптимизации.
Цитата
И не забыть -Os -flto линкеру сказать.
Ну это разумеется:
Код
%.elf: $(OBJ)
@echo $(MSG_LINKING) $@
$(CC) $(ALL_CFLAGS) $^ --output $@ $(LDFLAGS)
PS: Я считаю, что имеет смысл сравнивать разные версии компиляторов на максимально возможной оптимизации (по скорости или объёму - кому что нужно).