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


Dale Johannesen <[email protected]> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |[email protected]
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |




--- Comment #5 from Dale Johannesen <[email protected]>  2009-08-18 13:01:54 ---
"invalid cfg"?  You didn't think so when reviewing 78351, which introduced the
simpler CFG, so I'm skeptical this is well defined.  There are lots of other
places in that area that remove duplicate edges, and IMO that is the way it
should be throughout, although right now only BranchFolding does that.  It is
more efficient, possibly noticeably so in the case of large switches.

The real problem here is that the redundant conditional branches were not
removed when the edges were fixed up.  That's because AnalyzeBranch is not
handling JNE followed by JLE, and there are probably other bugs (missing
optimizations at least) lurking that are associated with that.  Its comments
say:

    // If [the branch conditions] differ, see if they fit one of the known
patterns.
    // Theoretically we could handle more patterns here, but
    // we shouldn't expect to see them if instruction selection
    // has done a reasonable job.

so where did JNE followed by JLE come from?


-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to