オリジナルコード
while(i<30){
// do something
i++;
}
while ループ展開
while(i<15){
// do something twice
i+=2;
}
上記のように展開できません。いつもhttp://en.wikipedia.org/wiki/Loop_unrollingのようにする必要がありますか?
オリジナルコード
while(i<30){
// do something
i++;
}
while ループ展開
while(i<15){
// do something twice
i+=2;
}
上記のように展開できません。いつもhttp://en.wikipedia.org/wiki/Loop_unrollingのようにする必要がありますか?
一般的に、答えはノーです。30 は偶数であるため、30 と 15 では機能しますが、奇数では簡単には機能しません。「ダフの装置」は、一般的なケースに対処するために発明されました。しかし、それはかなり醜いです。