abc プロジェクト
14.8.8. GetDoValAddValue メンバ関数説明

メンバ関数名 GetDoValAddValue
定義ファイル名TuneRegion.cpp
定義行 3828
所属名 TTuneRegion
アクセス属性 private
宣言形式 int GetDoValAddValue ( int RefValIdx , DWORD UseValBits , int DoValIdx , int * Count )
概要 Do変数に Unroll中の行での加算する値を計算して返す。

外側のLoop で、UnRoll = 2
中で UnRoll = 2 の場合には、中側が先に変化する形の計算となる。
kk = 0 : A(i+0,j+0);
kk = 1 : A(i+0,j+1);
kk = 2 : A(i+1,j+0);
kk = 3 : A(i+1,j+1);
戻り値 加算する値
パラメタ説明 RefValIdx 参照変数Idx
UseValBits 使用中Bits
DoValIdx Do変数Idx
Count 各変数のカウント配列
機能説明
備考

呼出し元関数一覧表
名称 定義ファイル名 定義行
1 TTuneRegion::OutputUnroll_Line TuneRegion.cpp 2718

関数論理チャート

        |  +--------------------------------------------------------------------------------------------+ 
  3828  +--+ int TTuneRegion::GetDoValAddValue(int RefValIdx,DWORD UseValBits,int DoValIdx,int *Count)  | 
  3829     | {                                                                                          | 
           +--+-----------------------------------------------------------------------------------------+ 
  3830        +--- int AddValue = 0;
  3831        +--- int i;
  3832        +--- int Idx[32];
  3833        |    
  3834        +--- // 各桁[Do変数ごと]のIdxを求める。
              |  +--------------------------------------+ 
  3835        +--+ for(i = DoValIdx-1 ; i >= 0 ; i--){  | 
              |  +--+-----------------------------------+ 
  3836        |     +--- Idx[i] = RefValIdx % Count[i];
  3837        |     +--- RefValIdx /= Count[i];
              |   +-+---+ 
  3838        |   |  }  | 
              |   +-----+ 
  3839        +--- // UseValBitsの立っているIdxを加算して計算する。
              |  +----------------------------------+ 
  3840        +--+ for(i = 0 ; i < DoValIdx ; i++){ | 
              |  +--+-------------------------------+ 
              |     |  +------------------------------------+ 
  3841        |     +--+ if((UseValBits & (1 << i)) != 0){  | 
              |     |  +--+---------------------------------+ 
  3842        |     |     +--- AddValue *= Count[i];
  3843        |     |     +--- AddValue += Idx[i];
              |     |   +-+---+ 
  3844        |     |   |  }  | 
              |     |   +-----+ 
              |   +-+---+ 
  3845        |   |  }  | 
              |   +-----+ 
              |  +------------------+ 
  3846        +--+ return AddValue; | 
              |  +------------------+ 
            +-+---+ 
  3847      |  }  | 
            +-----+