[LLVMbugs] [Bug 1256] NEW: llvm-upgrade cannot distinguish between int tmp & uint tmp etc.
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Wed Mar 14 06:18:01 PDT 2007
http://llvm.org/bugs/show_bug.cgi?id=1256
Summary: llvm-upgrade cannot distinguish between int tmp & uint
tmp etc.
Product: tools
Version: trunk
Platform: PC
OS/Version: Linux
Status: NEW
Severity: major
Priority: P2
Component: llvm-upgrade
AssignedTo: unassignedbugs at nondot.org
ReportedBy: patil.nikhil at gmail.com
(Mis-upgradation. No warning issued.)
The following testcase should be self-explanatory... llvm-upgrade can't pick
the correct %tmp when both int %tmp and uint %tmp are defined. Similar problem
occurs with sbyte and ubyte.
Testcase: zxc.ll:
target datalayout = "e-p:32:32"
target endian = little
target pointersize = 32
target triple = "i686-pc-linux-gnu"
implementation ; Functions:
void %_Z4func() {
entry:
%tmp = add int 0, 0
%tmp = add uint 1, 1
%tmp = add ubyte 1, 2
%tmp = add sbyte 2, 3
call void %f (int %tmp)
call void %g (ubyte %tmp)
ret void
}
declare void %f(int)
declare void %g(ubyte)
Output of $llvm-upgrade zxc.ll
; ModuleID = 'zxc.ll'
target datalayout = "e-p:32:32"
target triple = "i686-pc-linux-gnu"
implementation ; Functions:
define void @_Z4func() {
entry:
%tmp = add i32 0, 0 ; <i32> [#uses=0]
%tmp.upgrd.1 = add i32 1, 1 ; <i32> [#uses=1]
%tmp.upgrd.2 = add i8 1, 2 ; <i8> [#uses=0]
%tmp.upgrd.3 = add i8 2, 3 ; <i8> [#uses=1]
call void @f( i32 %tmp.upgrd.1 )
call void @g( i8 %tmp.upgrd.3 )
ret void
}
declare void @f(i32)
declare void @g(i8)
Expected output:
; ModuleID = 'zxc.ll'
target datalayout = "e-p:32:32"
target triple = "i686-pc-linux-gnu"
implementation ; Functions:
define void @_Z4func() {
entry:
%tmp = add i32 0, 0 ; <i32> [#uses=0]
%tmp.upgrd.1 = add i32 1, 1 ; <i32> [#uses=1]
%tmp.upgrd.2 = add i8 1, 2 ; <i8> [#uses=0]
%tmp.upgrd.3 = add i8 2, 3 ; <i8> [#uses=1]
call void @f( i32 %tmp ) ; *XXX*
call void @g( i8 %tmp.upgrd.2 ) ; *XXX*
ret void
}
declare void @f(i32)
declare void @g(i8)
------- 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