LIR : COINSプロジェクトの低水準中間言語

書誌事項

タイトル別名
  • Design of a Low - level Intermediate Language in COINS Project

この論文をさがす

抄録

本発表ではCOINS プロジェクトの低水準中間言語LIR の特徴的な部分を説明する.中間言語LIRの目的はGCC のRTL と同様であり,また設計も似ている.一方でLIR はRTL にはない以下のような特徴を持つ.まず関数,ブロック,モジュールという,通常の低水準中間言語には見られない高水準の構造を導入することにより,最適化からコード生成に至るパスをあるモデルの上でのプログラム変換としてとらえることを可能とした.またLIR のドキュメンテーションでは表示的意味論でLIR の意味を記述した.これにより先のモデルが厳密に定義され,またポータブルで信頼性の高い処理系が実現可能となる.LIR はRTL 同様揮発性オブジェクトの表現を持つが,我々はその意味も厳密に定義しているので,揮発性オブジェクトへの誤った最適化を禁止できる.実行中のプログラムは揮発性変数をチャネルとしたプロセスと見なせる.この考えにより揮発性オブジェクトのもう1 つの,そしてより自然な意味付けができるが,一方でそれは大雑把であり実用的ではない.しかし,揮発性オブジェクトに対するこれら2 つの意味は等価であることが示せるので,我々の意味定義は妥当なものといえる.

In this presentation, we briefly introduce essential advantages of the low-level compiler intermediate language LIR used in the project. The purpose and basic concepts of LIR are similar to those of RTL which is the intermediate language of GCC. The advantages of LIR are as follows. First, by employing higher-level constructs, usually absent in low-level compiler intermediate languages, we can describe all of compiler back-end passes, from code optimizations to code generations, as program transformations on a model. Secondly, the documentation of LIR is written by a formal method based on denotational semantics. This will ensure the existence of the model and help implementers write portable and reliable compilers. Finally, LIR has a representation for volatile objects like RTL, but also we rigorously define a semantics for the objects. This will inhibit wrong optimizations for the objects. A running program can be regarded as a process communicating via channels of volatile variables. This view inspires ano ther and more natural semantics of volatile objects; this semantics is, however, too rough to be practically useful. And a proof of equivalence between the two semantics provides adequacy of our semantics for the objects.

収録刊行物

キーワード

詳細情報 詳細情報について

  • CRID
    1050845762820712192
  • NII論文ID
    110002772191
  • NII書誌ID
    AA11464814
  • ISSN
    18827802
  • Web Site
    http://id.nii.ac.jp/1001/00016764/
  • 本文言語コード
    ja
  • 資料種別
    article
  • データソース種別
    • IRDB
    • CiNii Articles

問題の指摘

ページトップへ