From c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1 Mon Sep 17 00:00:00 2001 From: Nils Wallménius Date: Sun, 18 Jul 2010 19:05:53 +0000 Subject: FS#11454 Tuning of codec compiler options Tested with h300 and sansa c200v1 h300 speedups: a52: 2% cook: 9-17% aac: 0.5% vorbis: 0.5% wma: 6-12% c200v1 speedups: alac: 1.5% wma 3-4% wavpack 2% git-svn-id: svn://svn.rockbox.org/rockbox/trunk@27486 a1c6a512-1295-4272-9138-f99709370657 --- apps/codecs/lib/libcodec.make | 10 +++++++++- apps/codecs/liba52/liba52.make | 13 +++++++++++++ apps/codecs/libalac/libalac.make | 7 ++++++- apps/codecs/libasf/libasf.make | 9 ++++++++- apps/codecs/libcook/libcook.make | 15 ++++++++++++++- apps/codecs/libwavpack/libwavpack.make | 10 ++++++++-- apps/codecs/libwma/libwma.make | 15 +++++++++++++++ 7 files changed, 73 insertions(+), 6 deletions(-) (limited to 'apps/codecs') diff --git a/apps/codecs/lib/libcodec.make b/apps/codecs/lib/libcodec.make index d784b7cf99..c1858dcd6c 100644 --- a/apps/codecs/lib/libcodec.make +++ b/apps/codecs/lib/libcodec.make @@ -16,7 +16,15 @@ $(CODECLIB): $(CODECLIB_OBJ) $(SILENT)$(shell rm -f $@) $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null -CODECLIBFLAGS = $(CODECFLAGS) -ffunction-sections +CODECLIBFLAGS = $(filter-out -O%,$(CODECFLAGS)) -ffunction-sections + +ifeq ($(MEMORYSIZE),2) + CODECLIBFLAGS += -Os +else ifeq ($(CPU),coldfire) + CODECLIBFLAGS += -O2 +else + CODECLIBFLAGS += -O1 +endif $(CODECDIR)/lib/%.o: $(ROOTDIR)/apps/codecs/lib/%.c $(SILENT)mkdir -p $(dir $@) diff --git a/apps/codecs/liba52/liba52.make b/apps/codecs/liba52/liba52.make index 79b2eb222e..c0fc7c8885 100644 --- a/apps/codecs/liba52/liba52.make +++ b/apps/codecs/liba52/liba52.make @@ -16,3 +16,16 @@ OTHER_SRC += $(A52LIB_SRC) $(A52LIB): $(A52LIB_OBJ) $(SILENT)$(shell rm -f $@) $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null + +A52FLAGS = -I$(APPSDIR)/codecs/liba52 $(filter-out -O%,$(CODECFLAGS)) + +ifeq ($(CPU),coldfire) + A52FLAGS += -O2 +else + A52FLAGS += -O1 +endif + +$(CODECDIR)/liba52/%.o: $(ROOTDIR)/apps/codecs/liba52/%.c + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(A52FLAGS) -c $< -o $@ + diff --git a/apps/codecs/libalac/libalac.make b/apps/codecs/libalac/libalac.make index b23050f23b..c1b5d0acb1 100644 --- a/apps/codecs/libalac/libalac.make +++ b/apps/codecs/libalac/libalac.make @@ -18,7 +18,12 @@ $(ALACLIB): $(ALACLIB_OBJ) $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null ALACFLAGS = $(filter-out -O%,$(CODECFLAGS)) -ALACFLAGS += -O3 + +ifeq ($(CPU),arm) + ALACFLAGS += -O2 +else + ALACFLAGS += -O3 +endif $(CODECDIR)/libalac/%.o: $(ROOTDIR)/apps/codecs/libalac/%.c $(SILENT)mkdir -p $(dir $@) diff --git a/apps/codecs/libasf/libasf.make b/apps/codecs/libasf/libasf.make index 31d80a33f8..52e338eb64 100644 --- a/apps/codecs/libasf/libasf.make +++ b/apps/codecs/libasf/libasf.make @@ -18,7 +18,14 @@ $(ASFLIB): $(ASFLIB_OBJ) $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null ASFFLAGS = $(filter-out -O%,$(CODECFLAGS)) -ASFFLAGS += -O3 + +ifeq ($(MEMORYSIZE),2) + ASFFLAGS += -Os +else ifeq ($(CPU),coldfire) + ASFFLAGS += -O3 +else + ASFFLAGS += -O2 +endif $(CODECDIR)/libasf/%.o: $(ROOTDIR)/apps/codecs/libasf/%.c $(SILENT)mkdir -p $(dir $@) diff --git a/apps/codecs/libcook/libcook.make b/apps/codecs/libcook/libcook.make index 07836913d7..6a2817e07c 100644 --- a/apps/codecs/libcook/libcook.make +++ b/apps/codecs/libcook/libcook.make @@ -15,4 +15,17 @@ OTHER_SRC += $(COOKLIB_SRC) $(COOKLIB): $(COOKLIB_OBJ) $(SILENT)$(shell rm -f $@) - $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null \ No newline at end of file + $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null + +COOKFLAGS = -I$(APPSDIR)/codecs/libcook $(filter-out -O%,$(CODECFLAGS)) + +ifeq ($(CPU),coldfire) + COOKFLAGS += -O2 +else + COOKFLAGS += -O1 +endif + +$(CODECDIR)/libcook/%.o: $(ROOTDIR)/apps/codecs/libcook/%.c + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(COOKFLAGS) -c $< -o $@ + diff --git a/apps/codecs/libwavpack/libwavpack.make b/apps/codecs/libwavpack/libwavpack.make index f0912ee0eb..c016ac85c6 100644 --- a/apps/codecs/libwavpack/libwavpack.make +++ b/apps/codecs/libwavpack/libwavpack.make @@ -13,8 +13,14 @@ WAVPACKLIB_SRC := $(call preprocess, $(APPSDIR)/codecs/libwavpack/SOURCES) WAVPACKLIB_OBJ := $(call c2obj, $(WAVPACKLIB_SRC)) OTHER_SRC += $(WAVPACKLIB_SRC) -WAVPACKFLAGS = -I$(APPSDIR)/codecs/libwavpack $(filter-out -O%,$(CODECFLAGS)) -WAVPACKFLAGS += -O2 +WAVPACKFLAGS = -I$(APPSDIR)/codecs/libwavpack $(filter-out -O%,$(CODECFLAGS)) + +ifeq ($(CPU),arm) + WAVPACKFLAGS += -O3 +else + WAVPACKFLAGS += -O2 +endif + $(WAVPACKLIB): $(WAVPACKLIB_OBJ) $(SILENT)$(shell rm -f $@) diff --git a/apps/codecs/libwma/libwma.make b/apps/codecs/libwma/libwma.make index 71c4cdc626..360245139d 100644 --- a/apps/codecs/libwma/libwma.make +++ b/apps/codecs/libwma/libwma.make @@ -16,3 +16,18 @@ OTHER_SRC += $(WMALIB_SRC) $(WMALIB): $(WMALIB_OBJ) $(SILENT)$(shell rm -f $@) $(call PRINTS,AR $(@F))$(AR) rcs $@ $^ >/dev/null + +WMAFLAGS = -I$(APPSDIR)/codecs/libwma $(filter-out -O%,$(CODECFLAGS)) + +ifeq ($(MEMORYSIZE),2) + WMAFLAGS += -Os +else ifeq ($(CPU),coldfire) + WMAFLAGS += -O3 +else + WMAFLAGS += -O2 +endif + +$(CODECDIR)/libwma/%.o: $(ROOTDIR)/apps/codecs/libwma/%.c + $(SILENT)mkdir -p $(dir $@) + $(call PRINTS,CC $(subst $(ROOTDIR)/,,$<))$(CC) $(WMAFLAGS) -c $< -o $@ + -- cgit v1.2.3