私が作成したこの問題(https://github.com/dotnet/coreclr/issues/17294)によると、新しいアーキテクチャの新しいバックエンドの作成は複雑な作業です。複数のアーキテクチャをサポートする新しいバックエンドを作成してみませんか?
MonoはLLVMバックエンドを実装しました。
Powerとs390xアーキテクチャが比較的強力に戻ってきているので、私はこれを言います...
数年前、私たちは.Net用のLLVMコードジェネレーターであるLLILCに取り組みました。 正確なGCのサポート、.Net例外モデルの完全なサポート、低スループットなど、対処が困難になると思われる多くの問題が発生しました。 あなたはここでいくつかの詳細を読むことができます: 6ヶ月のLLILC 。
LLVM経由のMonoは保守的なGCを使用し、(少なくとも場合によっては)すべての範囲の例外動作を処理しません。 これはMonoのアプリケーションターゲットには受け入れられますが、私たちの目的には十分に一般的ではありません。
LLILCは、上位層のjit(いつか)として、または新しいアーキテクチャで基本的なcodegenを実行するための立ち上げ手段としてまだ興味深いかもしれません。
こんにちは@AndyAyersMS
LLILCの簡単なビルドの問題を修正しましたhttps://github.com/dotnet/llilc/issues/1097
確認してください。
ありがとう、
レスリー・ザイ
質問に答えたので、この問題を閉じます。
最も参考になるコメント
数年前、私たちは.Net用のLLVMコードジェネレーターであるLLILCに取り組みました。 正確なGCのサポート、.Net例外モデルの完全なサポート、低スループットなど、対処が困難になると思われる多くの問題が発生しました。 あなたはここでいくつかの詳細を読むことができます: 6ヶ月のLLILC 。
LLVM経由のMonoは保守的なGCを使用し、(少なくとも場合によっては)すべての範囲の例外動作を処理しません。 これはMonoのアプリケーションターゲットには受け入れられますが、私たちの目的には十分に一般的ではありません。
LLILCは、上位層のjit(いつか)として、または新しいアーキテクチャで基本的なcodegenを実行するための立ち上げ手段としてまだ興味深いかもしれません。