diff options
| author | Nils Wallménius <nils@rockbox.org> | 2010-07-18 19:05:53 +0000 |
|---|---|---|
| committer | Nils Wallménius <nils@rockbox.org> | 2010-07-18 19:05:53 +0000 |
| commit | c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1 (patch) | |
| tree | 2ec08a6ae91d7032e5a563adc7bb5338f69b08fc | |
| parent | 45fc5e3aade9a47727b8caacf75958f9ee527167 (diff) | |
| download | rockbox-c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1.zip rockbox-c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1.tar.gz rockbox-c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1.tar.bz2 rockbox-c45e1254c6852ba36fa3af1b9a096f5c3be0d8d1.tar.xz | |
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
| -rw-r--r-- | apps/codecs/lib/libcodec.make | 10 | ||||
| -rw-r--r-- | apps/codecs/liba52/liba52.make | 13 | ||||
| -rw-r--r-- | apps/codecs/libalac/libalac.make | 7 | ||||
| -rw-r--r-- | apps/codecs/libasf/libasf.make | 9 | ||||
| -rw-r--r-- | apps/codecs/libcook/libcook.make | 15 | ||||
| -rw-r--r-- | apps/codecs/libwavpack/libwavpack.make | 10 | ||||
| -rw-r--r-- | apps/codecs/libwma/libwma.make | 15 |
7 files changed, 73 insertions, 6 deletions
diff --git a/apps/codecs/lib/libcodec.make b/apps/codecs/lib/libcodec.make index d784b7c..c1858dc 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 79b2eb2..c0fc7c8 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 b23050f..c1b5d0a 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 31d80a3..52e338e 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 0783691..6a2817e 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 f0912ee..c016ac8 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 71c4cdc..3602451 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 $@ + |