KDOC 151: Goコンパイラの定数式の埋め込みをみる
この文書のステータス
- 作成
- 2024-05-01 貴島
- レビュー
- 2024-05-11 貴島
違い
↓まずCの、RISC-V向けアセンブリ。見慣れた形式。
↓つぎにGoの、RISC-V向けアセンブリ。
まとめ。
- ↑2言語で書かれた内容はほぼ同じ
- Go言語の生成したアセンブリのほうが短い
- 少なくとも↑このコードでは、Goアセンブリに乗算命令
mul
がない。明らかに定数だから、先読みして結果だけ埋め込んでしまうということか。例コードだとGoコンパイラの方が最適化しているといえる
↓引数にすると、最適化しようがないので乗算命令が現れる。
関連
- KDOC 145: Goアセンブリの違い。例示コードを書いているときに、計算命令が現れないのに気づいた