summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorNils Wallménius <nils@rockbox.org>2010-07-18 19:05:53 +0000
committerNils Wallménius <nils@rockbox.org>2010-07-18 19:05:53 +0000
commitc45e1254c6852ba36fa3af1b9a096f5c3be0d8d1 (patch)
tree2ec08a6ae91d7032e5a563adc7bb5338f69b08fc /apps
parent45fc5e3aade9a47727b8caacf75958f9ee527167 (diff)
downloadrockbox-c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1.tar.gz
rockbox-c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1.tar.bz2
rockbox-c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1.zip
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
Diffstat (limited to 'apps')
-rw-r--r--apps/codecs/lib/libcodec.make10
-rw-r--r--apps/codecs/liba52/liba52.make13
-rw-r--r--apps/codecs/libalac/libalac.make7
-rw-r--r--apps/codecs/libasf/libasf.make9
-rw-r--r--apps/codecs/libcook/libcook.make15
-rw-r--r--apps/codecs/libwavpack/libwavpack.make10
-rw-r--r--apps/codecs/libwma/libwma.make15
7 files changed, 73 insertions, 6 deletions
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 $@
+