dce-pure.ll 662 B

123456789101112131415161718192021222324252627282930313233
  1. ; RUN: opt -bdce -S < %s | FileCheck %s
  2. declare i32 @strlen(i8*) readonly nounwind
  3. define void @test1() {
  4. call i32 @strlen( i8* null )
  5. ret void
  6. ; CHECK-LABEL: @test1
  7. ; CHECK-NOT: call
  8. ; CHECK: ret void
  9. }
  10. define i32 @test2() personality i32 (...)* @__gxx_personality_v0 {
  11. ; invoke of pure function should not be deleted!
  12. invoke i32 @strlen( i8* null ) readnone
  13. to label %Cont unwind label %Other
  14. Cont: ; preds = %0
  15. ret i32 0
  16. Other: ; preds = %0
  17. %exn = landingpad {i8*, i32}
  18. cleanup
  19. ret i32 1
  20. ; CHECK-LABEL: @test2
  21. ; CHECK: invoke
  22. ; CHECK: ret i32 1
  23. }
  24. declare i32 @__gxx_personality_v0(...)