LLVMに処理したコードをsdccに食わせる、という話は確かに昔聞いてはいた。 http://www.colecovision.eu/llvm+sdcc/
で、確かにこの方法でC to Cな変換をLLVMでやらせることができそう(今はllvm-gccでなくclangになるけども)…と思ったんだけど、ヘッダの処理をどうするかって問題があるのか。
2010-3-20[土] LLVMで Cに変換してみる http://www.6809.net/tenk/?%E9%9B%91%E8%A8%98%2F2010%2D03%2D20
uaa@framboise:~/z/ichigojam-firm/console$ clang -S -o tmp2.ll -emit-llvm -O2 -I../IchigoJam_BASIC -I./src ../IchigoJam_BASIC/main.c -nostdinc -I/usr/local/share/z88dk/include
In file included from ../IchigoJam_BASIC/main.c:16:
In file included from ./src/config.h:9:
In file included from /usr/local/share/z88dk/include/unistd.h:9:
/usr/local/share/z88dk/include/sys/types.h:34:9: error: 'short _Float16' is invalid
typedef short _Float16; /* IEEE-754 half float type */
まあそうなりますよねー…
標準品(?)のllvmじゃなく、sdccと組み合わせるためのllvmを用意しないといかんか…