CoSyコンパイラ開発システム お問合わせ サイトマップ A-qualトップ
CoSyコンパイラ開発システム > 製品情報 > 主な機能

主な機能

製品概要
主な機能
コンパイラ作成手順
CoSyの製品としての特徴
徹底的なジェネレータの使用

モジュール構造
  • コンパイラ開発者の知識をモジュール化
  • 独立したモジュール開発
  • 部品の再利用
その利点
  • Time to marketの短縮
  • 開発費・保守費の低減
CoSy
-Code Generator
CoSyにはBegと呼ばれるCode Generatorを生成するツールが含まれています。
BegはCGD(Code Generator Description)ファイルを基にCode Generatorを生成していきます。
CGDファイルはコンパイラ開発者によって作成され、ターゲットアーキテクチャの情報、例えばレジスタやプロセッサの構成、また各命令のパターンマッチングの定義、更には各命令のスケジューリングを行うための情報が含まれています。
-Scheduler
  • レジスタの依存関係、命令間のレイテンシーを考慮に入れた命令のスケジューリングを行うことが可能です。
  • プロセッサユニットの複数化にすばやく対応でき、命令のパラレル化も可能です。
  • 特別な処理をを固有の命令としてスケジューリングに加えることができます。
to TOP
豊富な分析と最適化のengine
  • Constant folding
    • 定数の畳み込みともいわれ、定数計算をコンパイル時に実行してしまう最適化アルゴリズム
  • Algebraic simplification
    • 計算後の値が同じ計算を削除する最適化アルゴリズム
  • Copy/constant propagation
    • 同じ箇所を同じもので置き換える最適化アルゴリズム
  • Strength reduction
    • よりコストの低い方法で計算を置き換える最適化アルゴリズム
  • Dead code elimination
    • 実行されることのない命令を削除する最適化アルゴリズム
  • Common subexpression elimination
    • 異なる形でものでも同じ値を持つ式を何回も計算せずに済むようにする為、同じ値を持つ式を置き換える最適化アルゴリズム
  • Function inlining, intrinsics
    • 関数を展開し、関数呼び出しのオーバーヘッドを無くすアルゴリズム
  • Software pipelining
    • ループ内の処理を重ね合わせ並列度を上げる技術
  • Loop unrolling, fusion, etc.
    • Loop unrolling:ループ内部を展開する最適化アルゴリズム
    • Loop fusion:複数のループを一つのループに変換する最適化アルゴリズム
  • Loop invariant code motion
    • ループ内部で不変な式を移動する最適化アルゴリズム
  • Tail recursion elimination
    • 再起呼び出しをジャンプ命令に変換する最適化アルゴリズム
  • Leaf procedure optimization
    • leaf procedureを識別し、スタックの割り当てを省く最適化アルゴリズム
to TOP


JNOVEL 日本ノーベル株式会社Copyright(C)Japan Novel Corporation