[llvm-bugs] [Bug 37800] New: Instnamer pass produces broken ir?

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jun 14 03:45:06 PDT 2018


https://bugs.llvm.org/show_bug.cgi?id=37800

            Bug ID: 37800
           Summary: Instnamer pass produces broken ir?
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Transformation Utilities
          Assignee: unassignedbugs at nondot.org
          Reporter: lebedev.ri at gmail.com
                CC: llvm-bugs at lists.llvm.org

https://godbolt.org/g/Vj3jnC

Given:

define dso_local void @_Z4testi(i32) local_unnamed_addr #0 {
  %2 = icmp sgt i32 %0, 0
  br i1 %2, label %4, label %3

  ret void

  %5 = phi i32 [ %6, %4 ], [ 0, %1 ]
  tail call void @_Z4calli(i32 %5) #2
  %6 = add nuw nsw i32 %5, 1
  %7 = icmp eq i32 %6, %0
  br i1 %7, label %3, label %4
}
declare dso_local void @_Z4calli(i32) local_unnamed_addr #1

After running instnamer:


define dso_local void @_Z4testi(i32 %arg) local_unnamed_addr {
  %tmp = icmp sgt i32 %arg, 0
  br i1 %tmp, label %.preheader, label %.loopexit

.loopexit: ; preds = %.preheader, %bb
  ret void

.preheader: ; preds = %bb, %.preheader
  %tmp1 = phi i32 [ %tmp2, %.preheader ], [ 0, %bb ]
  tail call void @_Z4calli(i32 %tmp1)
  %tmp2 = add nuw nsw i32 %tmp1, 1
  %tmp3 = icmp eq i32 %tmp2, %arg
  br i1 %tmp3, label %.loopexit, label %.preheader
}

declare dso_local void @_Z4calli(i32) local_unnamed_addr

After invoking opt on that new ir:

/opt/compiler-explorer/clang-trunk/bin/opt: <source>:10:48: error: use of
undefined value '%bb'
  %tmp1 = phi i32 [ %tmp2, %.preheader ], [ 0, %bb ]
                                               ^
Compiler returned: 1

-- 
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/20180614/d84b71f0/attachment.html>


More information about the llvm-bugs mailing list