コードの最適化をしているところです。
ソースコードに以下のような2つのループ分があります。Cシュミレーションも高位合成も通るのですが、RTLシュミレーションでありえないくらい時間がかかり終わりません。
一つ目のループ分内で使われるkに二つ目のループ分のkが依存していることが問題のような気がします。(調べるとそのような感じのことが書いてあった)
pragmaやディレクティブで何か解決できるものなのでしょうか?また、依存しない書き方をするべきでしょうか。
C++
1・ 2・ 3・ 4for(int i = loop_start1; i < degree_num - 2; i++) 5 { 6 if( degree1[i+1] == n ) 7 { 8 degree2[k] = m; 9 k += 1; 10 for(int j = i + 1; j < degree_num - 1; j++) 11 { 12 if( degree1[j+1] == m ) 13 { 14 tri += 1; 15 break; 16 } 17 } 18 loop_start1 = i; 19 break; 20 } 21 } 22for(int x = 0; x<k+1; x++) 23 { 24 if(degree2[x+1] == n) 25 { 26 for(int k2=1; k2<degree1[0]; k2++) 27 { 28 if(degree1[k2] == m) 29 { 30 squ += 1; 31 break; 32 } 33 } 34 break; 35 } 36 } 37・ 38・ 39・
回答1件
あなたの回答
tips
プレビュー