diff options
Diffstat (limited to 'test/Transforms/DeadArgElim/basictest.ll')
-rw-r--r-- | test/Transforms/DeadArgElim/basictest.ll | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/test/Transforms/DeadArgElim/basictest.ll b/test/Transforms/DeadArgElim/basictest.ll new file mode 100644 index 0000000..a3a4235 --- /dev/null +++ b/test/Transforms/DeadArgElim/basictest.ll @@ -0,0 +1,37 @@ +; RUN: llvm-upgrade < %s | llvm-as | opt -deadargelim | llvm-dis | not grep DEADARG + +implementation + +; test - an obviously dead argument +internal int %test(int %v, int %DEADARG1, int* %p) { + store int %v, int* %p + ret int %v +} + +; hardertest - an argument which is only used by a call of a function with a +; dead argument. +internal int %hardertest(int %DEADARG2) { + %p = alloca int + %V = call int %test(int 5, int %DEADARG2, int* %p) + ret int %V +} + +; evenhardertest - recursive dead argument... +internal void %evenhardertest(int %DEADARG3) { + call void %evenhardertest(int %DEADARG3) + ret void +} + +internal void %needarg(int %TEST) { + call int %needarg2(int %TEST) + ret void +} + +internal int %needarg2(int %TEST) { + ret int %TEST +} + +internal void %needarg3(int %TEST3) { + call void %needarg(int %TEST3) + ret void +} |