[LLVMbugs] [Bug 1098] NEW: Incorrect post-dominators with multiple returns

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Jan 8 08:44:04 PST 2007


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

           Summary: Incorrect post-dominators with multiple returns
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Global Analyses
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: djg at cray.com


In some test cases with multiple return statements, the post-dominator passes
return incorrect information.

For this test case:

define void %foo(bool %x) {
entry:
  br bool %x, label %bb1, label %bb0
bb0:
  ret void
bb1:
  br label %bb2
bb2:
  ret void
}

The `entry' block's immediate post-dominator should be the exit node, but the
immediate post-dominator pass's print() output is

  Immediate Dominator For Basic Block: %entry is: %bb0
  Immediate Dominator For Basic Block: %bb0 is: <<exit node>>
  Immediate Dominator For Basic Block: %bb1 is: %bb2
  Immediate Dominator For Basic Block: %bb2 is: <<exit node>>

The post-dominator tree and post-dominator set passes exhibit similar
behavior.



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