2
에 줄이기 :루프 내가 선택적으로 다음과 같은 프로그램에서 두 번째 루프를 풀다하려고 그 소리
#include <stdio.h>
int main()
{
int in[1000], out[1000];
int i,j;
#pragma nounroll
for (i = 100; i < 1000; i++)
{
in[i]+= 10;
}
#pragma unroll 2
for (j = 100; j < 1000; j++)
{
out[j]+= 10;
}
return 1;
}
을 나는 다음과 같은 옵션을 연타 (3.5)를 실행하면 루프 모두 4 번 언 롤링합니다.
clang -std=c++11 -O3 -fno-slp-vectorize -fno-vectorize -mllvm -unroll-count=4 -mllvm -debug-pass=Arguments -emit-llvm -c *.cpp
내가 뭘 잘못하고 있니? 또한 -fno-unroll-loops
을 추가하거나 -unroll-count=4
플래그를 건너 뛸 경우 루프가 실행되지 않습니다.
또한 pragma 오류를 디버깅하는 방법에 대한 힌트가 있습니까?