KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Knowing the number of iteration a loop will go through allows the compiler to do some optimization. Consider for instance the two loops below : Unknown iteration count : static void bitreverse(vbuf_desc * vbuf) { unsigned int idx = 0; unsigned char * img = vbuf->usrptr; while(idx < vbuf->bytesused) { img[idx] = bitrev[img[idx]]; idx++; } } Known iteration count static void bitreverse(vbuf_desc * vbuf) { unsigned int idx = 0; unsigned char * img = vbuf->usrptr; while(idx < 1280*400) { img[idx] = bitrev[img[idx]]; idx++; } } The second version will compile to faster code, because it will be unrolled twice (on ARM with gcc 4.6.3 and -O2 at least). Is there a way to make assertion on the loop count that gcc will take into account when optimizing ?
Tags (comma-separated)
Save Edits
Cancel