[LLVMbugs] [Bug 957] NEW: Predicate simplifier causes libgcc/_udivdi3_s miscompilation

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Thu Oct 19 11:33:02 PDT 2006


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

           Summary: Predicate simplifier causes libgcc/_udivdi3_s
                    miscompilation
           Product: libraries
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: critical
          Priority: P2
         Component: Scalar Optimizations
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: evan.cheng at apple.com


Without predsimplify pass:

LBB1_18:        #cond_false179
        testl %ebp, %ebp
        jne LBB1_20     #cond_next185
LBB1_19:        #cond_true182
        movl $1, %eax
        xorl %edx, %edx
        divl %ebp
        movl %eax, %ebp
LBB1_20:        #cond_next185
        cmpl $65535, %ebp
        ja LBB1_24      #cond_false199

The divl is properly guarded to prevent divide by zero.

With -predsimplify:

LBB1_25:        #cond_true182
        xorl %edx, %edx
        movl $1, %eax
        divl %edx
        movl %eax, %ebp
LBB1_26:        #cond_next185
        cmpl $65535, %ebp
        ja LBB1_30      #cond_false199

That's guaranteed to cause an divide by zero exception!



------- 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