basictest.ll 983 B

123456789101112131415161718192021222324252627282930313233343536
  1. ; RUN: opt < %s -deadargelim -S | not grep DEADARG
  2. ; test - an obviously dead argument
  3. define internal i32 @test(i32 %v, i32 %DEADARG1, i32* %p) {
  4. store i32 %v, i32* %p
  5. ret i32 %v
  6. }
  7. ; hardertest - an argument which is only used by a call of a function with a
  8. ; dead argument.
  9. define internal i32 @hardertest(i32 %DEADARG2) {
  10. %p = alloca i32 ; <i32*> [#uses=1]
  11. %V = call i32 @test( i32 5, i32 %DEADARG2, i32* %p ) ; <i32> [#uses=1]
  12. ret i32 %V
  13. }
  14. ; evenhardertest - recursive dead argument...
  15. define internal void @evenhardertest(i32 %DEADARG3) {
  16. call void @evenhardertest( i32 %DEADARG3 )
  17. ret void
  18. }
  19. define internal void @needarg(i32 %TEST) {
  20. call i32 @needarg2( i32 %TEST ) ; <i32>:1 [#uses=0]
  21. ret void
  22. }
  23. define internal i32 @needarg2(i32 %TEST) {
  24. ret i32 %TEST
  25. }
  26. define internal void @needarg3(i32 %TEST3) {
  27. call void @needarg( i32 %TEST3 )
  28. ret void
  29. }