callingconventions.ll 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. ; RUN: llvm-as < %s | llvm-dis > %t1.ll
  2. ; RUN: llvm-as %t1.ll -o - | llvm-dis > %t2.ll
  3. ; RUN: diff %t1.ll %t2.ll
  4. define fastcc void @foo() {
  5. ret void
  6. }
  7. define coldcc void @bar() {
  8. call fastcc void @foo( )
  9. ret void
  10. }
  11. define void @structret({ i8 }* sret %P) {
  12. call void @structret( { i8 }* sret %P )
  13. ret void
  14. }
  15. define void @foo2() {
  16. ret void
  17. }
  18. define coldcc void @bar2() {
  19. call fastcc void @foo( )
  20. ret void
  21. }
  22. define cc42 void @bar3() personality i32 (...)* @__gxx_personality_v0 {
  23. invoke fastcc void @foo( )
  24. to label %Ok unwind label %U
  25. Ok:
  26. ret void
  27. U:
  28. %exn = landingpad {i8*, i32}
  29. cleanup
  30. resume { i8*, i32 } %exn
  31. }
  32. define void @bar4() personality i32 (...)* @__gxx_personality_v0 {
  33. call cc42 void @bar( )
  34. invoke cc42 void @bar3( )
  35. to label %Ok unwind label %U
  36. Ok:
  37. ret void
  38. U:
  39. %exn = landingpad {i8*, i32}
  40. cleanup
  41. resume { i8*, i32 } %exn
  42. }
  43. declare ghccc void @ghc_callee()
  44. define void @ghc_caller() {
  45. call ghccc void @ghc_callee()
  46. ret void
  47. }
  48. declare i32 @__gxx_personality_v0(...)