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