JP3492207B2 - 組み込みソフトウェアの動的解析方法 - Google Patents
組み込みソフトウェアの動的解析方法Info
- Publication number
- JP3492207B2 JP3492207B2 JP20226798A JP20226798A JP3492207B2 JP 3492207 B2 JP3492207 B2 JP 3492207B2 JP 20226798 A JP20226798 A JP 20226798A JP 20226798 A JP20226798 A JP 20226798A JP 3492207 B2 JP3492207 B2 JP 3492207B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instruction code
- embedded software
- information
- executed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Landscapes
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Description
に組み込まれるソフトウェアを最適化する組み込みソフ
トウェアの動的解析方法に関する。
オブジェクトコードについて、その実行順序の従属関係
を調べ、結果を格納するオペランドが後続の命令コード
に与える影響を求め、この影響度の大きい順に命令コー
ドを並べ替えて実行時間を最小にしたり、対象するハー
ドウェアに応じてオブジェクトコードサイズを縮小する
等の最適化を図る解析手法が知られており、この種の技
術としては例えば、特開平2−176938号公報に開
示されている。
手法に基づき、組み込みソフトウェアの開発を行う場
合、効率よくコードが生成されておらず、コードサイズ
が大きすぎて組み込もうとしているLSIのメモリサイ
ズに収納しきれないことがままある。その為、従来で
は、LSIのメモリ容量を増やしたり、対象となるLS
I自体を変更しなければならなくなる等の弊害があり、
結果的にコスト高を招致する要因にもなっている。ま
た、メモリ容量を増設したりLSI自体の変更を行わな
い場合でも、作成したソースコードを開発者が期待する
コードサイズになるまで何度も最適化し直す場合もあ
り、それによる開発工数の増加により、この点でもコス
ト高を招致する要因になっている。
パイラやアセンブラの最適化に任せるしかなく、そうで
ない場合にもコンパイラやアセンブラがどのようなコー
ドを出力するかを考慮してソースコードを記述しなけれ
ばならず、効率良い最適化が望めない現状にある。
たもので、効率良い最適化を実現する上、コスト低減を
図ることができる組み込みソフトウェアの動的解析方法
を提供することを目的としている。
め、請求項1に記載の発明では、処理対象となる組み込
みソフトウェアの命令コードを使用してシミュレーショ
ンを実行し、実行した命令コードが指定したメモリへの
アクセス命令であった場合にそのアクセス情報を第1の
シミュレーション結果保持部に格納すると共に実行した
前記命令コードがログを残すべき命令コードの実行であ
った場合に該当するログ情報とその累積実行回数をログ
保存部へ格納するステップと、前記ログ保存部から読み
込んだログ情報と前記命令コードの情報に基づき、条件
分岐命令の飛び先アドレスとその回数、無条件分岐命令
の飛び先アドレスとその回数、呼び出された関数とその
回数、一度も実行されなかった基本ブロック、一度も呼
び出されなかった関数をそれぞれ解析するステップと、
その解析結果から前記組み込みソフトウェアのサイズが
縮小可能であった場合に当該命令コードの削除又は変更
を行うステップと、前記解析結果から前記組み込みソフ
トウェアの処理高速化が可能であった場合に当該関数及
び当該基本ブロックのインライン展開を行うステップ
と、前記命令コードの削除、変更、又は前記インライン
展開により再構築された命令コードを使用して前記シミ
ュレーションを再実行し、実行した命令コードが指定し
たメモリへのアクセス命令であった場合にそのアクセス
情報を第2のシミュレーション結果保持部に格納するス
テップと、前記第1のシミュレーション結果保持部及び
前記第2のシミュレーション結果保持部に格納されたデ
ータを比較し、再構築前後の命令コードが同じ動作をす
るかどうかを検証するステップとを備えることを特徴と
する。
記載の動的解析方法によれば、インライン展開により削
除可能な無条件分岐命令を抽出し、抽出した無条件分岐
命令を削除したり、条件分岐命令の内、分岐先への飛ぶ
回数の多い命令について条件を逆にし、分岐先をこの条
件分岐のあとに挿入して実行時間を短縮化する。あるい
は無条件分岐命令の内、実行回数の多い無条件分岐命令
を削除し、飛び先をその無条件分岐の後に挿入して無条
件分岐命令文のサイズを縮小する。
ェアを疑似的に実行させ、命令コードの実行過程を表わ
すログ情報を取得し、取得したログ情報を参照して命令
コードの変更、削除および並び替えを施して命令コード
を縮小化と処理速度の高速化を図る為、効率良い最適化
を実現する上、コスト低減を図ることが可能になる。
施の一形態について説明する。 (1)本発明の概要 本発明は、実際にシミュレータなどで組み込みソフトウ
ェアを実行し、その結果を基にして、命令コードの変更
や並び替えを行うことにより、命令コードのサイズを縮
小或いは拡大して、組み込みソフトウェアをより高速に
或いはよりコンパクトに再構築するものである。
されるプログラム10の構成について説明する。プログ
ラム10は、組み込みソフトウェアの実行の情報を取得
し保存するログ保存部11と、組み込みソフトウェアを
実際にシミュレートするシミュレーション部12と、ロ
グ保存部11で保存した情報を解析し命令コードの再構
築を行う再構築部13と、再構築前のシミュレーション
の実行結果を保持するシミュレーション結果保持A部1
4と、再構築後のシミュレーションの実行結果を保持す
るシミュレーション結果保持B部15と、シミュレーシ
ョン結果保持A部14とシミュレーション結果保持B部
15とを比較する結果比較部16とから構成される。
でシミュレーション結果(実行情報)を保持するログ情
報保存テーブルを有しており、このテーブルに格納する
主要な情報としては、実際に実行したアドレス61、実
行した命令の飛び先アドレス62、実行した命令が条件
分岐命令か無条件分岐か或いは、関数呼び出しかなどを
識別する実行命令の属性63、この命令の実行回数6
4、それから条件分岐などの場合に分岐した実行回数6
5が挙げられる。
ュレーション結果保持B部15については、シミュレー
ションの実行前にあらかじめ残しておきたいメモリのア
ドレスを利用者により指定し、その情報の変更履歴を残
して保持しておく。これらの保存された情報を結果比較
部16で変更後に実行したメモリの情報と変更前に実行
したメモリの情報を比較し同じ変更履歴の情報が得られ
ることで命令コードの変更前と変更後のシミュレーショ
ン結果が同じである為変更後の命令コードが同じ動作と
立証できる。 再構築部13については、ログ保存部1
1で保存された情報を基に、既存の命令コードの並び替
え或いは命令コードの変更、命令コードの削除を行う。
ムの処理動作について説明する。このプログラムでは、
シミュレーション部12で組み込みソフトウェアをシミ
ュレーションし、その実行結果を条件分岐の飛び先アド
レスの情報や、呼び出し関数の情報、無条件分岐命令の
飛び先アドレスの情報などを保存するログ保存部11に
渡し解析データとして保持するようにし、次に図6、図
7、図8,図9、図10、図11、図12に図示する各
処理(後述する)を再構築部13によって解析し、組み
込みソフトウェアのコードサイズの縮小化あるいは、組
み込みソフトウェアの実行処理速度の高速化の為に命令
コードの変更、削除、並び替えを行う。
の起動により、シミュレーション部12が図2に示すス
テップS21〜28を実行する。まずステップS21で
は、処理対象となる組み込みソフトウェアの命令コード
を実行する。そして、ステップS22では、その実行し
た命令が指定されているメモリに対してのアクセス命令
であるか否かを判断する。その判断は、指定したメモリ
へのアクセスした情報を保持するテーブル71を参照し
て行われる。
に、実際にアクセスしたかどうかをチェックの対象とす
るメモリアドレス72とそのメモリアドレスへのアクセ
スした情報を格納してあるテーブル74を指すポインタ
73、そしてアクセスした情報を格納してあるテーブル
には、メモリへリードなのかライトなのかを識別するア
クセス属性75、アクセスしたメモリの値76、メモリ
をアクセスした命令のプログラムカウンタ77、次にこ
のアドレスをアクセスした情報を格納してあるテーブル
へのポインタ78から構成されている。
実行した命令が指定されているメモリへのアクセス命令
であるかどうかを判断した結果、メモリへのアクセス命
令であると、上記ステップS22の判断結果は「YE
S」となり、ステップS23に処理を進め、そのアクセ
ス情報(書き込みでか読み出しか、そのアクセスしたデ
ータの値など)をシミュレーション結果保持A部14に
情報を格納する。一方、格納処理が終了するか、あるい
は実行した命令が指定したメモリへのアクセスではなか
った場合には、上記ステップS22の判断結果が「N
O」となり、ステップS24に処理を進め、実行した命
令が、ログを残すべき命令(条件分岐、無条件分岐、関
数呼び出しなど)の実行かどうかをチェックする。
命令ではなかった場合には、ここでの判断結果は「N
O」となり、次の命令を実行するために上述したステッ
プS21に処理を戻して次の命令を実行する。これに対
し、上記ステップS24のチェック結果が、ログを残す
命令であった場合には、判断結果が「YES」となり、
次のステップS25に処理を進め、その残すべき情報と
同じ情報がすでに存在しているかどうかを判断する。
合、このステップS25の判断結果が「YES」とな
り、次のステップS26に進み、その情報の実行回数の
カウント値を1インクリントする。一方、同じ情報が存
在しない場合には、判断結果が「NO」となり、この場
合、ステップS27に処理を進めて、初めて実行された
命令として、ログ保存部11へその情報を格納すると同
時に実行回数を1として格納する。
すると、ステップS28に進み、シミュレーションを続
行するか否かを判断する。ここで、続行であれば、判断
結果が「NO」となり、次に命令を実行するために上述
したステップS21に処理を戻して次の命令を実行する
が、シミュレーション終了であれば、判断結果が「YE
S」となり、図3に示す一連の処理、すなわち、シミュ
レーションの実行でログ保存部11に保存された情報を
解析する再構築部13の処理に移行する。
行すると、最初にステップS30において、ログ保存部
11で保存された情報を使って再構築を行うかどうかを
判断する。ここで、再構築の要求が無ければ、判断結果
が「NO」となり、シミュレーション実行および再構築
全ての処理を終了して後述するステップS51に処理を
進める。
結果が「YES」となり、ステップS31に処理を進
め、再構築部13によってログ保存部11からログ情報
が読み込まれ、続くステップS32では、組み込みソフ
トウェアの命令コードに関する情報(シンボル情報な
ど)を読み込む。そして、ステップS33では、読み込
んだログ情報と命令コードの情報とを基にして、これか
ら解析するために使用する解析用テーブル86(図8参
照)を作成する。
うに、シミュレーションの実行に伴って保存しておいた
ログ情報テーブル81と、組み込みソフトウェアのシン
ボル情報や命令コードの情報のテーブル82とを結合し
たテーブルであって、「条件分岐命令の飛び先アドレス
とその回数」の情報か「無条件分岐命令の飛び先アドレ
スとその回数」かなど、ログ保存部11で保持する情報
を識別するログ情報の種類83、それからログ情報テー
ブルへのポインタ84、ソフトウェア情報テーブルへの
ポインタ85を管理するものである。
して、再構築部13では、図3に示すステップS34〜
S38にて、「条件分岐命令の飛び先アドレスとその回
数」、「無条件分岐命令の飛び先アドレスとその回
数」、「呼び出された関数とその回数」、「一度も実行
されなかった基本ブロック」、「一度も呼び出されなか
った関数」をそれぞれ解析し、それら解析結果から解析
用テーブル91(図9参照)を作成する(ステップS3
9)。この後、図4に示すステップS41に処理を進
め、解析用テーブル91を解析し、その解析結果から組
み込みソフトウェアのサイズを縮小可能かどうかを判断
する(ステップS42)。
縮小可能と判断された場合には、ステップS42の判断
結果が「YES」となり、ステップS43に処理を進め
て命令コードの削除などのサイズを縮小する為の命令コ
ードの変更処理を行うが、縮小可能でないか或いは縮小
処理が終了した時には、上記ステップS42の判断結果
が「NO」となり、ステップS44に処理を進め、組み
込みソフトウェアの処理高速化が可能かどうかを判断す
る。
合には、判断結果が「YES」となり、ステップS45
に処理を進め、関数のインライン展開や基本ブロックの
インライン展開など高速化の為の命令コードの変更を行
う。これに対し、高速化が可能でないと判断した場合に
は、ステップS46に処理を進め、その前の命令コード
を縮小する為の命令コード変更を行ったかどうかを判断
する。そして、縮小の為、高速化の為、或いは両方の命
令コードの変更を行った場合には、判断結果が「YE
S」となり、ステップS47に処理を進めて新たに生成
する命令コードのアドレスの解決処理を行う。一方、何
も命令コードに対しての処理を行わなかった場合には、
上記ステップS46の判断結果は「NO」となり、後述
するステップS51に処理を進める。
再構築された命令コードの検証を行うかどうかのチェッ
クをし、その必要が無い場合には判断結果が「NO」と
なって全ての処理を終了するが、立証の必要がある場合
には判断結果が「YES」となり、次のステップS52
に処理を進め、再構築された命令コードを使用してのシ
ミュレーションを再実行する。次いで、ステップS53
では、再構築した命令コードに基づき再実行されるシミ
ュレーションの過程で、予め指定したメモリへのアクセ
スを行う命令コードを実行したかどうかを判断する。
う命令コードを実行した場合には、判断結果が「YE
S」となり、ステップS54に処理を進め、その情報を
シミュレーション結果保持B15部に格納する。一方、
指定したメモリへのアクセスする命令コードを実行して
いない場合には、上記ステップS53の判断結果は「N
O」となり、ステップS55に処理を進め、シミュレー
ションの継続かどうかをチェックし、継続であれば、再
びシミュレーションを行うべく上記ステップS52に処
理を戻す。
れば、ステップS55の判断結果は「YES」となり、
ステップS56に進み、再構築前に保存しておいたシミ
ュレーション結果保持A部14と再構築後に保存したシ
ミュレーション結果保持B部15とからそれぞれデータ
を取り出して、結果比較部16で2つのデータを比較す
る。そして、ステップS57では、その比較結果が同じ
であるかどうかを判断し、同じであれば全ての処理を終
了するが、不一致である時にはステップS58に処理を
進め、再構築前の命令コードへ戻し、再構築できなかっ
た旨を通知してから処理完了させる。
較の各処理の動作について詳述する。さて、前述したス
テップS34〜S39では、「条件分岐命令の飛び先ア
ドレスとその回数」、「無条件分岐命令の飛び先アドレ
スとその回数」、「呼び出された関数とその回数」、
「一度も実行されなかった基本ブロック」、「一度も呼
び出されなかった関数」をそれぞれ解析し、それら解析
結果から解析用テーブル91を作成するが、この解析用
テーブル91は図9に図示するように、保存したログ情
報毎のテーブル92、93、94、95、96から形成
されるものである。
て、解析結果を反映したテーブルとして、図10に示す
テーブル102、106が作成される。テーブル102
は命令コードを縮小する為の情報を管理するものであ
り、一方、テーブル106は処理を高速化する為の情報
を管理するテーブル106である。これらテーブル10
2,106では、命令コードへの反映のための優先順位
105、109を基にして解析用テーブル91へのポイ
ンタ103、107から実際の情報をたどっていけるよ
うになっている。また実際に命令コードへの反映を行っ
たかどうかを識別する為の情報として実施状況104、
108を有しておき、この情報で同じ事を何度も行わな
い様にする。
変換、アドレス解決および実行結果比較する各処理につ
いて図11〜図12を参照して詳述する。最初に図11
を参照して命令コード変換により組み込みソフトウェア
の処理高速化を図る為の解析方法について述べる。この
処理では、無条件分岐に着目して、削除可能な無条件分
岐命令を削除することで1命令分の実行時間の短縮が可
能となる。これは、いわゆるインライン展開である。
(111) また、条件分岐命令に着目し、分岐先への
飛ぶ回数の多い命令を条件を逆にし分岐先の基本ブロッ
クをこの条件分岐のあとに挿入することで高速化するこ
とができる。(112)
ことで命令コードのサイズを小さくすることに関しての
解析方法を述べる。無条件分岐に着目し、実行回数の多
い無条件分岐命令を削除し、飛び先の基本ブロックをそ
の無条件分岐の後に挿入することで、無条件分岐命令文
のサイズを縮小することが可能となる(113)。
解決の方法に関しては、図12を使って説明する。ま
ず、基本ブロックA121、基本ブロックB122、基
本ブロックC123が変更されたことにより影響があっ
た基本ブロックとした場合、これを仮想のアドレス解決
用の領域124にはめ込んでいく。この仮想のアドレス
解決用の領域の先頭を仮に0x100とした場合そこか
らのオフセットにより、基本ブロックA,B,Cをアド
レス解決していき、最後にこの仮想のアドレス解決用の
領域の先頭アドレスを実際の組み込みソフトウエアの先
頭アドレスに変更し全てのアドレス情報を解決する(1
25)。
とシミュレーション結果保持B部15との比較を行う方
法を述べる。メモリアドレス72(図7参照)から辿る
ことが可能なアクセス情報を格納してあるテーブルを1
つ1つたどりながら、シミュレーション結果保持A部1
4とシミュレーション結果保持B部15の情報を比較し
ていき、情報に過不足或いは情報に差異が無いかをチェ
ックする。この時アクセスしたPCに関しては、命令コ
ードのアドレス解決を行っている可能性があるので無視
する。
レータなどで組み込みソフトウェアを実行し、その結果
を基にして、命令コードの変更や並び替えを行うことに
より、命令コードのサイズを縮小或いは拡大して、組み
込みソフトウェアをより高速に或いはよりコンパクトに
再構築するようにしたので、指定したメモリサイズ内に
組み込みソフトウェアの命令コードを再構築することが
可能になる。この結果、組み込みソフトウェアが組み込
もうとしているLSIが保持しているメモリ内に収まる
ため、大きいメモリサイズのLSIへの変更が不要とな
り、コストの削減が得られる。
命令コードの削除や命令コードの変更、命令コードの並
び替えによる命令コードの削除等で組み込みソフトウェ
アの命令コードサイズを調整し得る。また、シミュレー
ションの結果(再構築前と再構築後との実行経過情報を
比較した結果)を利用し命令コードを直接変更し再構築
するから、ソースコードの修正をユーザが行わないで済
むためか開発期間を短縮することができる。
態に限定されず、種々変形が可能であり、例えば、図1
3に示す変形例としても良い。すなわち、上述の実施の
一形態では、命令コードのサイズの縮小及び命令コード
の変更による高速化を同時に行っていたが、これにより
命令コードのサイズの縮小と高速化の命令コードの変更
は、相反する命令コードの変更になる場合も考えられ、
その一例としては高速化の為にインライン展開すると命
令コードが増えて命令コードの縮小にはつながらないこ
とが挙げられる。
構築用のテーブルを解析し(ステップS131)、再構
築用のテーブルを解析した後、利用者が命令コードの縮
小を希望しているのか、命令コードの変更による高速化
を希望しているのかを判断する(ステップS132)。
そして、もし命令コードの縮小を希望している場合に
は、命令コードの縮小に対応した変更処理のみを行い
(ステップS133)、一方、命令コードの変更による
高速化を希望している場合には、命令コードの縮小処理
に関しては一切無視した形で、高速化に対応した変更処
理のみを行う(ステップS134)。これにより、両方
の命令コードの変更を行い中途半端な変更処理になるの
を防ぐことが可能となる。
保存部11で保持する「条件分岐命令の飛び先アドレス
とその実行回数」、「呼び出された関数とその呼び出し
回数」、「無条件分岐命令の飛び先アドレスとその実行
回数」、「1度も呼び出されなかった関数」、「1度も
実行されなかった基本ブロック(ここでの基本ブロック
とは、分岐命令、ラベルで囲まれた命令コード群のこと
を言う)」および「どこからも呼び出しがない関数(関
数自体の呼び出し命令が無い場合)」を、起動時に利用
者が必要と思われる情報のみを選択し指定可能にするこ
とによってログ情報の格納に費やす時間及びそのログ情
報を基にして再構築するための解析に費やす時間を短縮
する態様としても良い。
フトウェアを疑似的に実行させ、命令コードの実行過程
を表わすログ情報を取得し、取得したログ情報を参照し
て命令コードの変更、削除および並び替えを施して命令
コードを縮小化と処理速度の高速化を図る為、効率良い
最適化を実現する上、コスト低減を図ることができる。
を示すブロック図である。
る。
る。
る。
る。
る。
ある。
ある。
解決の方法を説明するための図である。
Claims (4)
- 【請求項1】 処理対象となる組み込みソフトウェアの
命令コードを使用してシミュレーションを実行し、実行
した命令コードが指定したメモリへのアクセス命令であ
った場合にそのアクセス情報を第1のシミュレーション
結果保持部に格納すると共に実行した前記命令コードが
ログを残すべき命令コードの実行であった場合に該当す
るログ情報とその累積実行回数をログ保存部へ格納する
ステップと、 前記ログ保存部から読み込んだログ情報と前記命令コー
ドの情報に基づき、条件分岐命令の飛び先アドレスとそ
の回数、無条件分岐命令の飛び先アドレスとその回数、
呼び出された関数とその回数、一度も実行されなかった
基本ブロック、一度も呼び出されなかった関数をそれぞ
れ解析するステップと、 その解析結果から前記組み込みソフトウェアのサイズが
縮小可能であった場合に当該命令コードの削除又は変更
を行うステップと、 前記解析結果から前記組み込みソフトウェアの処理高速
化が可能であった場合に当該関数及び当該基本ブロック
のインライン展開を行うステップと、 前記命令コードの削除、変更、又は前記インライン展開
により再構築された命令コードを使用して前記シミュレ
ーションを再実行し、実行した命令コードが指定したメ
モリへのアクセス命令であった場合にそのアクセス情報
を第2のシミュレーション結果保持部に格納するステッ
プと、 前記第1のシミュレーション結果保持部及び前記第2の
シミュレーション結果保持部に格納されたデータを比較
し、再構築前後の命令コードが同じ動作をするかどうか
を検証するステップとを備えることを特徴とする組み込
みソフトウェアの動的解析方法。 - 【請求項2】 前記命令コードの削除又は変更を行うス
テップにおいて、インライン展開により削除可能な無条
件分岐命令を抽出し、抽出した無条件分岐命令を削除し
て実行時間を短縮化することを特徴とする請求項1記載
の組み込みソフトウェアの動的解析方法。 - 【請求項3】 前記命令コードの削除又は変更を行うス
テップにおいて、条件分岐命令の内、分岐先への飛ぶ回
数の多い命令について条件を逆にし、分岐先をこの条件
分岐のあとに挿入して実行時間を短縮化することを特徴
とする請求項1記載の組み込みソフトウェアの動的解析
方法。 - 【請求項4】 前記命令コードの削除又は変更を行うス
テップにおいて、無条件分岐命令の内、実行回数の多い
無条件分岐命令を削除し、飛び先をその無条件分岐の後
に挿入して無条件分岐命令文のサイズを縮小することを
特徴とする請求項1記載の組み込みソフトウェアの動的
解析方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20226798A JP3492207B2 (ja) | 1998-07-16 | 1998-07-16 | 組み込みソフトウェアの動的解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP20226798A JP3492207B2 (ja) | 1998-07-16 | 1998-07-16 | 組み込みソフトウェアの動的解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000035891A JP2000035891A (ja) | 2000-02-02 |
JP3492207B2 true JP3492207B2 (ja) | 2004-02-03 |
Family
ID=16454719
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP20226798A Expired - Fee Related JP3492207B2 (ja) | 1998-07-16 | 1998-07-16 | 組み込みソフトウェアの動的解析方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3492207B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6080602B2 (ja) | 2013-02-22 | 2017-02-15 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 実フットプリント算出方法、該算出方法を用いたインラインするメソッドの決定方法、装置及びプログラム |
-
1998
- 1998-07-16 JP JP20226798A patent/JP3492207B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000035891A (ja) | 2000-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5325531A (en) | Compiler using clean lines table with entries indicating unchanged text lines for incrementally compiling only changed source text lines | |
US5313387A (en) | Re-execution of edit-compile-run cycles for changed lines of source code, with storage of associated data in buffers | |
US5170465A (en) | Incremental-scanning compiler for source-code development system | |
US5182806A (en) | Incremental compiler for source-code development system | |
US5201050A (en) | Line-skip compiler for source-code development system | |
US5193191A (en) | Incremental linking in source-code development system | |
KR101354796B1 (ko) | 소프트웨어 트랜잭션 메모리 블록들을 포함하는 프로그램의컴파일을 위한 방법 | |
US7921407B2 (en) | System and method for supporting multiple alternative methods for executing transactions | |
US9015690B2 (en) | Proactive loop fusion of non-adjacent loops with intervening control flow instructions | |
US7779393B1 (en) | System and method for efficient verification of memory consistency model compliance | |
JP2000507373A (ja) | インタラクティブソフトウェア開発システム | |
US5937191A (en) | Determining and reporting data accessing activity of a program | |
JP2010532530A (ja) | メモリトランザクションのグループ化 | |
JP2007286671A (ja) | ソフトウェア/ハードウェア分割プログラム、および分割方法。 | |
CN110990001A (zh) | Ivr流程执行方法及装置 | |
US5301327A (en) | Virtual memory management for source-code development system | |
EP0406028A2 (en) | Incremental compiler for source code development system | |
JP3492207B2 (ja) | 組み込みソフトウェアの動的解析方法 | |
KR0125605B1 (ko) | 프로그램의 아키덱쳐 변환방법 및 장치와 그 방법 및 장치를 사용하여 프로그램의 동작을 검증하는 방법 및 장치 | |
JP5186562B2 (ja) | トランザクションメモリのオブジェクトモデル | |
JPH10320212A (ja) | キャッシュ向け最適化方法 | |
JP5276094B2 (ja) | トランザクション・メモリ・システムにおけるトランザクション・コード・ブロックを効果的に検索する方法 | |
US6782523B2 (en) | Parallel configurable IP design methodology | |
US8732672B2 (en) | Constraint derivation in context following for use with object code insertion | |
US20230266950A1 (en) | Methods and devices for compiler function fusion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20010619 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081114 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081114 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101114 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101114 Year of fee payment: 7 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101114 Year of fee payment: 7 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121114 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121114 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131114 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |