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>

Include dependency graph for deptest.h:

This graph shows which files directly or indirectly include this file:

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

void ctrump_get_loop_depinfo ( struct ctrump_loop_info loop,
int *  id,
struct ctrump_mempool loop_alloc 
)

ループ依存情報の計算 計算結果は loop->depinfo に格納

Definition at line 573 of file deptest.c.

References get_distance_vector(), and ctrump_loop_info::root.

Referenced by ctrump_analyze_loop().


Generated on Tue Mar 31 20:19:24 2009 for ctrump by  doxygen 1.5.6