qlang開発環境
LLVMを使って開発する時に便利なのが、フロントエンドのIRを解決できれば、バックエンド側が無くてもとりあえずはOKというのもあって、必ずしもRISC-V LLVMが手元に無くても開発を進めることが出来る。
ということで、開発環境はこんな感じになっている。
・Macbook : Xcode/clang-10
・IDE : VScode
Xcodeを最新にするとclang-10になっていた。RISC-V側のLLVMも9/10をターゲットにしているから、まぁ大丈夫動くだろう。VScodeを使うのはエディタとして優れていて、gitも簡単、デバック環境もサクッと作れるというのがある。
デバック環境を少しメモとして残しておく。
1. githubからコードを持ってきてVScode入れる
2. launch.jsonを用意する
デバック用のファイルlaunch.jsonを用意する。”command + shift + p”でDebug: Open launch.jsonとかで次へ。
3. launch.jsonを編集する
デフォルトだとデバックできないので、次のように編集する。(これはqlang用で、他の環境やビルドターゲットで異なるですね)
{ "version": "0.2.0", "configurations": [ { "name": "qlang debug configurations", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/qlang", "args": [ "example/test.q" ], "stopAtEntry": true, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": true, "MIMode": "lldb", "logging": { "trace": true, "traceResponse": true, "engineLogging": true } } ] }
これで準備はOKあとはデバックするだけ。F5でデバックを開始すると…
とまぁ、こんな感じでフロントエンド側のコードをデバックして進めることが出来る。うまくIRが出来たら、RISC-V LLVM/シュミレーター(spike)が動く環境でもコードの同期を取って実行すれば動作確認までサクサク進められる。独自の命令セットを使っている部分は使わなければそのままVScode上でもx86ターゲットで動作確認をすることが出来る。