invoke.ll 709 B

123456789101112131415161718192021222324252627
  1. ; RUN: opt -S -globalopt < %s | FileCheck %s
  2. ; rdar://11022897
  3. ; Globalopt should be able to evaluate an invoke.
  4. ; CHECK: @tmp = global i32 1
  5. @llvm.global_ctors = appending global [1 x { i32, void ()* }] [{ i32, void ()* } { i32 65535, void ()* @_GLOBAL__I_a }]
  6. @tmp = global i32 0
  7. define i32 @one() {
  8. ret i32 1
  9. }
  10. define void @_GLOBAL__I_a() personality i8* undef {
  11. bb:
  12. %tmp1 = invoke i32 @one()
  13. to label %bb2 unwind label %bb4
  14. bb2: ; preds = %bb
  15. store i32 %tmp1, i32* @tmp
  16. ret void
  17. bb4: ; preds = %bb
  18. %tmp5 = landingpad { i8*, i32 }
  19. filter [0 x i8*] zeroinitializer
  20. unreachable
  21. }