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