つぎの2つのソースコードはLLVM-IRの出力が同じになるのね。
void example03(char *a, char *b, char *c){
int i = 0;
while(1)
{
c[i] = a[i] * b[i];
i++;
if(i>=100) break;
}
}
void example03(char *a, char *b, char *c){
int i;
for(i=0;i<100;i++)
{
c[i] = a[i] * b[i];
}
}
ただし、-O3
の場合です。