2006-12-02 04:23:10 +00:00
|
|
|
; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim -die | llvm-dis | not grep DEAD
|
2003-10-22 22:33:59 +00:00
|
|
|
|
|
|
|
%P = external global int
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
|
|
|
|
internal int %test(int %DEADARG) { ; Dead arg only used by dead retval
|
|
|
|
ret int %DEADARG
|
|
|
|
}
|
|
|
|
|
|
|
|
internal int %test2(int %DEADARG) {
|
|
|
|
%DEADRETVAL = call int %test(int %DEADARG)
|
|
|
|
ret int %DEADRETVAL
|
|
|
|
}
|
|
|
|
|
|
|
|
void %test3(int %X) {
|
|
|
|
%DEADRETVAL = call int %test2(int %X)
|
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|
|
|
|
internal int %foo() {
|
|
|
|
%DEAD = load int* %P
|
|
|
|
ret int %DEAD
|
|
|
|
}
|
|
|
|
|
|
|
|
internal int %id(int %X) {
|
|
|
|
ret int %X
|
|
|
|
}
|
|
|
|
|
|
|
|
void %test4() {
|
|
|
|
%DEAD = call int %foo()
|
|
|
|
%DEAD2 = call int %id(int %DEAD)
|
|
|
|
ret void
|
|
|
|
}
|
|
|
|
|