正直日記



2005/01/27

_ 無題
Compiler Optimization (Radium Software)

GBAの場合は殆どのコードをROM上で直接実行するため、コードサイズが問題になる
ことは殆ど無いけど、IWRAMにコードを転送する場合は多少気になることもある。

例えば以下のようにmakefileを記述しておいて、IWRAMで実行するコードは
ARM State / サイズ優先でコンパイルし、ROMで実行するコードはThumb State /
速度優先でコンパイルするとか、そういうソリューションも有りかもしれんね。
最も、ARM Stateのコードはアセンブリ言語で書くだろうから、あんまり意味無い
かもしれない。

OPTIMIZE_SPEED	= -O2
OPTIMIZE_SIZE	= -O1
CFLAGS_THUMB	= $(CFLAGS) -mthumb
CFLAGS_ARM	= $(CFLAGS) -marm

%_arm.o: %_arm.c
	@echo compiling $<
	@$(PREFIX)gcc -MMD $(CFLAGS_ARM) $(OPTIMIZE_SIZE) -c $< -o $@

%.o: %.c
	@echo compiling $<
	@$(PREFIX)gcc -MMD $(CFLAGS_THUMB) $(OPTIMIZE_SPEED) -c $< -o $@

>
(追記)あれれ?-O2の方が縮んだよ?それどころか-O3は更に縮むよ?
pdrv.o
-O1 : 6.29 KB (6,448 bytes)
-O2 : 5.82 KB (5,960 bytes)
-O3 : 5.81 KB (5,956 bytes)

この日記を書いた日にした実験では-O1の方が縮むという結果が
残っているので、ケースバイケースなのかもしれない。
 (2005/02/20 10:27:46)

最新
2010 | 01 04
2009 | 01 02 03 04 05 06 07 09 10 11 12
2008 | 01 02 03 04 05 06 07 08 09 10 11 12
2007 | 02 03 04 05 06 07 08 10 11 12
2006 | 01 02 03 04 05 06 07 08 09 10 11 12
2005 | 01 02 03 04 05 06 07 08 09 10 11 12