test.cpp:
int main() {
int ret = 0;
for (int i = 0; i < 100; i++) {
    ret += i;
}
return ret;
}
 
Hi,
I’m new to clang/llvm recently and interested in doing some stuff in 
optimization passes.
I tried to play above simple test with clang and see if I could get expected 
llvm IR by enabling llvm loop unrolling of a count 2.
Here are my attempts:
adding pragma before loop in test.cpp: #pragma clang loop unroll_count(2)
It did not unroll the loop.
clang++ -c -emit-llvm -S -std=c++11 test.cpp
opt test.ll -mem2reg -loop-unroll -unroll-count=2 -unroll-allow-partial -S
It did not unroll the loop.
In addition, by enabling -debug, I saw message “Skipping ‘Unroll Loops’ pass…..”
clang++ -c -emit-llvm -S -std=c++11 -O1 test.cpp
It unrolled the loop completely and directly return the final result(4950).
 
I assume that my llvm and clang are latest and installed correctly.
Could someone please let me know what I am missing here?
 
Thanks,
Kai
_______________________________________________
cfe-users mailing list
cfe-users@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-users

Reply via email to