ctrump/analyzer/deptest.h File Reference
依存性を解析して、距離ベクトルを求める
More...
#include "ctrump/analyzer/var.h"
#include "ctrump/ast/expr-code.h"
#include "ctrump/common/mempool.h"
#include <limits.h>
Go to the source code of this file.
|
Data Structures |
struct | ctrump_loop_dependence_have_multiple_index |
| MIV. More...
|
struct | ctrump_loop_dependence_have_multiple_level |
| weak subscript(IVのレベル違い) More...
|
struct | ctrump_loop_dependence_have_weak_subscript |
| weak subscript(IVの増加数の違い) More...
|
struct | ctrump_loop_dependence_have_complicated_subscript |
| ポインタインクリメントと添字アクセスが混ざるなど、複雑な添字 More...
|
struct | ctrump_loop_dependence_analyze_error |
| 依存性解析エラー More...
|
struct | ctrump_loop_dependence_analyze_error_list |
| 依存性解析時のエラーのリスト More...
|
struct | ctrump_loop_memory_access_pair |
| ロード、ストアのペア More...
|
struct | ctrump_depend_distance_strong_siv |
| strong かつ siingle の 距離 More...
|
struct | ctrump_depend_distance_invariant_ziv |
| ループ不変値アクセスによる ZIV More...
|
struct | ctrump_depend_distance_member_name_ziv |
| 構造体のメンバ名アクセスによる ZIV More...
|
struct | ctrump_depend_distance |
| メモリアクセスの距離 More...
|
struct | ctrump_dependence_vector_set |
| 距離ベクトルの集合 More...
|
struct | ctrump_loop_dependence |
| ループの依存情報 More...
|
struct | ctrump_loop_depinfo |
| ループの依存情報 More...
|
Enumerations |
enum | ctrump_loop_dependence_analyze_error_code {
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_MULTIPLE_INDEX,
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_WEAK_SUBSCRIPT,
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_MULTIPLE_LEVEL,
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_COMPLICATED_SUBSCRIPT,
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_COMPLICATED_INNER_LOOP
} |
| 依存性テスト時のエラーの種類 More...
|
enum | ctrump_loop_depinfo_code { CTRUMP_LOOP_DEPINFO_ANALYZE_ERROR,
CTRUMP_LOOP_DEPINFO_HAVE_ERROR_INNER,
CTRUMP_LOOP_DEPINFO
} |
| 依存性情報の種類 More...
|
enum | ctrump_depend_distance_code { CTRUMP_DEPEND_DISTANCE_STRONG_SIV,
CTRUMP_DEPEND_DISTANCE_INVARIANT_ZIV,
CTRUMP_DEPEND_DISTANCE_MEMBER_NAME_ZIV,
CTRUMP_DEPEND_DISTANCE_CONSTANT_ZIV
} |
| 距離ベクトルの要素の種類 More...
|
Functions |
void | ctrump_get_loop_depinfo (struct ctrump_loop_info *loop, int *id, struct ctrump_mempool *loop_alloc) |
| ループ依存情報の計算 計算結果は loop->depinfo に格納
|
Detailed Description
依存性を解析して、距離ベクトルを求める
用語集(参考:OPTIMIZING COMPILERS for MODERN ARCHITECTURES)
ZIV (= Zero Index Variable) : インデクスの無い添字
SIV (= Single Index Variable) : インデクスがひとつの添字
MIV (= Multiple Index Variable) : 複数インデクスがある添字(今は未対応)
Weak Subscript : 交差する可能性のある添字(今は未対応)
Strong Subscript : 交差する可能性の無い添字
distance vector(距離ベクトル) : ふたつのメモリアクセスの距離
Definition in file deptest.h.
Enumeration Type Documentation
距離ベクトルの要素の種類
- Enumerator:
-
CTRUMP_DEPEND_DISTANCE_STRONG_SIV |
a[i-1] = a[i+1] |
CTRUMP_DEPEND_DISTANCE_INVARIANT_ZIV |
a[invariant] = a[invariant] |
CTRUMP_DEPEND_DISTANCE_MEMBER_NAME_ZIV |
a.x = a.x |
CTRUMP_DEPEND_DISTANCE_CONSTANT_ZIV |
a[0] = a[0] |
Definition at line 152 of file deptest.h.
依存性テスト時のエラーの種類
- Enumerator:
-
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_MULTIPLE_INDEX |
MIV : a[i+j] = a[j+i] |
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_WEAK_SUBSCRIPT |
Weak Subscript : a[i][j] = a[j][i] |
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_MULTIPLE_LEVEL |
Weak Subscript : a[i][j] = a[i][j][k] |
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_COMPLICATED_SUBSCRIPT |
解析できない添字 : *a++ = a[i++] |
CTRUMP_LOOP_DEPENDENCE_ANALYZE_HAVE_COMPLICATED_INNER_LOOP |
内側のループ解析時に問題があった |
Definition at line 66 of file deptest.h.
依存性情報の種類
- Enumerator:
-
CTRUMP_LOOP_DEPINFO_ANALYZE_ERROR |
エラーがあった |
CTRUMP_LOOP_DEPINFO_HAVE_ERROR_INNER |
ネストした内側のループでエラーがあった |
CTRUMP_LOOP_DEPINFO |
依存性情報を含む |
Definition at line 127 of file deptest.h.
Function Documentation