[LLVMbugs] [Bug 1232] NEW: constant propagation doesn't work through unrolled loops

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Wed Feb 28 17:46:01 PST 2007


http://llvm.org/bugs/show_bug.cgi?id=1232

           Summary: constant propagation doesn't work through unrolled loops
           Product: new-bugs
           Version: unspecified
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: loufoque at gmail.com


With the following C code, the loop is completely eliminated, thanks to loop
unrolling and constant propagation.
The resulting LLVM code just calls printf with 20.

#include <stdio.h>
#include <stddef.h>

int main()
{
	int v = 0;

	size_t i;
	for(i=0; i<5; i++)
	{
		v += i*2;
	}

	printf("%d\n", v);
}


However, if 5 is replaced by 100, loop unrolling doesn't occur, and for some
reason constant propagation doesn't work anymore.
The resulting code just needs to call printf with 9900, there is no need for any
loop.



------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.



More information about the llvm-bugs mailing list