LLVMにRenesas RL78をPortingしようとしているのかな?

こんにちは。NoMaYです。

ウェブで調べ物をしていて気付いたのですが、RenesasさんはLLVM(今はGCCと並ぶ著名なフリーコンパイラ)にRL78をPortingしようとしているのかも、、、

[llvm-dev] New LLVM backend for Renesas RL78 MCU
Sebastian Perta via llvm-dev llvm-dev at lists.llvm.org
Wed Apr 1 10:26:05 PDT 2020
lists.llvm.org/pipermail/llvm-dev/2020-April/140546.html
 

Parents
  • こんにちは。NoMaYです。

    > 7/14の日付で新しいのが出てますね。

    情報どうもありがとうございます。LLVM for Renesas RL78 が 10.0.0.202104 --> 10.0.0.202107 とアップデートされていましたね。newlib nano が使えるようになったとのことで、使ってみると確かにビルドしたプログラムのサイズが大幅に小さくなりました。(GNURL78と同等(少しLLVM-RL78の方が小さい)になった。)

    手持ちのプログラムその1

    LLVM-RL78   49,958 バイト@10.0.0.202104 --> 23,646 バイト@10.0.0.202107
    GNURL78     24,386 バイト@4.9.2.202002
    CC-RL       16,426 バイト@V1.10.00
    ICCRL78     15,850 バイト@V4.21.1

     
    手持ちのプログラムその2

    LLVM-RL78   73,396 バイト@10.0.0.202104 --> 46,198 バイト@10.0.0.202107
    GNURL78     50,418 バイト@4.9.2.202002
    CC-RL       34,766 バイト@V1.10.00
    ICCRL78     対象外(評価版のサイズ制限(16Kバイト)を超えるので同一プログラムをビルド出来ない)

     
    注:
    (1) 各ツールのサイズ表示機能を使用しているので計測対象が微妙に異なるかも知れません
    (2) ICCRL78は評価版のサイズ制限(16Kバイト)の事情で関数ポインタの先の関数が64Kバイト内に制限されるコードです。
    (2') 他のコンパイラでは関数ポインタの先の関数が64Kバイト内に制限されないコードです。

  • こんにちは。NoMaYです。

    ルネサスさんのCC-XXコンパイラもLLVMテクノロジを採用していますが、これ程の差は何でしょうかね、、、もちろん、ルネサスさんのCC-XXコンパイラの開発者の方々が大変優秀な証拠ですね、と言ってしまえば終わりなのですが、これ程の差というのは技術的側面においてちょっと気になります。(計測対象が違っているかも知れないという可能性も含めて、、、)

    手持ちのプログラムその1

    LLVM-RL78   23,646 バイト@10.0.0.202107
    CC-RL       16,426 バイト@V1.10.00

     
    手持ちのプログラムその2

    LLVM-RL78   46,198 バイト@10.0.0.202107
    CC-RL       34,766 バイト@V1.10.00

     

Reply
  • こんにちは。NoMaYです。

    ルネサスさんのCC-XXコンパイラもLLVMテクノロジを採用していますが、これ程の差は何でしょうかね、、、もちろん、ルネサスさんのCC-XXコンパイラの開発者の方々が大変優秀な証拠ですね、と言ってしまえば終わりなのですが、これ程の差というのは技術的側面においてちょっと気になります。(計測対象が違っているかも知れないという可能性も含めて、、、)

    手持ちのプログラムその1

    LLVM-RL78   23,646 バイト@10.0.0.202107
    CC-RL       16,426 バイト@V1.10.00

     
    手持ちのプログラムその2

    LLVM-RL78   46,198 バイト@10.0.0.202107
    CC-RL       34,766 バイト@V1.10.00

     

Children
  • NoMaYさん、こんにちは。情報ありがとうございます。
    上記のプログラムサイズは、ライブラリ分と実プログラム分の比率は大体どのような比率かわかりますでしょうか?

  • Stevieさん、こんにちは。NoMaYです。

    > ライブラリ分と実プログラム分の比率は大体どのような比率かわかりますでしょうか?

    明日以降になりますが、調べて、投稿しようと思います。

  • ありがとうございます!サイズ向けの最適化能力を見る場合はライブラリ分は除いた方がよいのかなと思いました。
    こちらもLLVMを試している所なので、情報があれば共有させて頂きますね