1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim -die | llvm-dis | not grep DEAD
%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
}
|