[LLVMbugs] [Bug 18754] New: Propagation of select values when followed by branch on same condition

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Feb 6 06:34:36 PST 2014


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

            Bug ID: 18754
           Summary: Propagation of select values when followed by branch
                    on same condition
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: prc33 at cam.ac.uk
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

The following code (with the knowledge that %data != null) is not optimised:

   %1 = icmp eq i32 %flag, 1
   %2 = select i1 %1, %foo* %data, %foo* null
   %3 = icmp eq %foo* %2, null
   br i1 %3, label %failure, label %success

Ideally LLVM would notice that %1 == !%3, and therefore that it can be changed
to:

   %1 = icmp eq i32 %flag, 1
   br i1 %1, label %success, label %failure

with %2 replaced by %data in %success (and its successors), and %2 replaced by
null in %failure.

Discussion on LLVMdev suggests this is related to: pr13307, pr10254, pr13590

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20140206/8c464f2c/attachment.html>


More information about the llvm-bugs mailing list