|
Hierarchical Program Paths
Chunbai Yang,
Shangru Wi and W. K. Chan
概要: 実行された命令の完全な
トレースを効率よく保存する。 |
0x00400024, 0x004000028, 0x00422ef8, 0x8fda9ace, ...
ほとんどのプログラムでは同じ部分が何度も実行される。
共通する部分を DAG としてまとめる → 高圧縮。
階層構造を反映 = "Hierarchical Program Paths"
| BL path | |
|---|---|
| id1 | "1,2,3,4,5" |
| id2 | "2,6,7,8" |
| id3 | "1,2,3,5" |
| id4 | "2,6,8" |
| id5 | "9" |
| ... | ... |
"1,2,3,4,1,2,3,5,2,6,8,5,2,6,7,9,8,…"(1 2 3 4 (1 2 3 5) (2 6 8) 5) (2 6 7 (9) 8)
setjmp(), longjmp(), fork()
| 名前 | コード量 | 実行時間 (秒) | トレース量 (GB) | ||||
|---|---|---|---|---|---|---|---|
| ネイティブ | BLPT | HPPTree | BLPT | HPPTree | HPPDAG | ||
| - SPLASH2 - | |||||||
| ocean-ncp | 733 | 12.6 | 110.6 | 87.7 | 5.5 | 4.0 | 0.02 |
| raytrace | 1,133 | 12.8 | 311.6 | 305.7 | 16.1 | 13.7 | 0.10 |
| - SPECint 2006 - | |||||||
| 400.perlbench | 17,058 | 5.7 | 62.2 | 55.2 | 4.7 | 3.9 | 0.04 |
| 403.gcc | 164,315 | 3.2 | 51.2 | 44.7 | 3.7 | 2.9 | 0.30 |
| 445.gobmk | 27,726 | 8.3 | 92.6 | 82.5 | 6.9 | 5.9 | 1.45 |
| 464.h264ref | 9,109 | 34.1 | 435.3 | 407.3 | 32.4 | 28.7 | 2.29 |