[llvm] r242372 - Revert "Update LLVM bindings after r239940. ..."

Rafael EspĂ­ndola rafael.espindola at gmail.com
Thu Jul 16 09:49:34 PDT 2015


This should probably go to 3.7.

On 15 July 2015 at 18:16, Reid Kleckner <reid at kleckner.net> wrote:
> Author: rnk
> Date: Wed Jul 15 20:16:39 2015
> New Revision: 242372
>
> URL: http://llvm.org/viewvc/llvm-project?rev=242372&view=rev
> Log:
> Revert "Update LLVM bindings after r239940. ..."
>
> Revert the changes to the C API LLVMBuildLandingPad that were part of
> the personality function move. We now set the personality on the parent
> function when the C API attempts to construct a landingpad with a
> personality.
>
> This reverts commit r240010.
>
> Modified:
>     llvm/trunk/bindings/go/llvm/ir.go
>     llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c
>     llvm/trunk/include/llvm-c/Core.h
>     llvm/trunk/lib/IR/Core.cpp
>
> Modified: llvm/trunk/bindings/go/llvm/ir.go
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/go/llvm/ir.go?rev=242372&r1=242371&r2=242372&view=diff
> ==============================================================================
> --- llvm/trunk/bindings/go/llvm/ir.go (original)
> +++ llvm/trunk/bindings/go/llvm/ir.go Wed Jul 15 20:16:39 2015
> @@ -1731,7 +1731,7 @@ func (b Builder) CreatePtrDiff(lhs, rhs
>  func (b Builder) CreateLandingPad(t Type, nclauses int, name string) (l Value) {
>         cname := C.CString(name)
>         defer C.free(unsafe.Pointer(cname))
> -       l.C = C.LLVMBuildLandingPad(b.C, t.C, C.unsigned(nclauses), cname)
> +       l.C = C.LLVMBuildLandingPad(b.C, t.C, nil, C.unsigned(nclauses), cname)
>         return l
>  }
>
>
> Modified: llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c?rev=242372&r1=242371&r2=242372&view=diff
> ==============================================================================
> --- llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c (original)
> +++ llvm/trunk/bindings/ocaml/llvm/llvm_ocaml.c Wed Jul 15 20:16:39 2015
> @@ -1745,7 +1745,7 @@ CAMLprim LLVMValueRef llvm_build_invoke_
>  CAMLprim LLVMValueRef llvm_build_landingpad(LLVMTypeRef Ty, LLVMValueRef PersFn,
>                                              value NumClauses,  value Name,
>                                              value B) {
> -    return LLVMBuildLandingPad(Builder_val(B), Ty, Int_val(NumClauses),
> +    return LLVMBuildLandingPad(Builder_val(B), Ty, PersFn, Int_val(NumClauses),
>                                 String_val(Name));
>  }
>
>
> Modified: llvm/trunk/include/llvm-c/Core.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/Core.h?rev=242372&r1=242371&r2=242372&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm-c/Core.h (original)
> +++ llvm/trunk/include/llvm-c/Core.h Wed Jul 15 20:16:39 2015
> @@ -2675,7 +2675,8 @@ LLVMValueRef LLVMBuildInvoke(LLVMBuilder
>                               LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch,
>                               const char *Name);
>  LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty,
> -                                 unsigned NumClauses, const char *Name);
> +                                 LLVMValueRef PersFn, unsigned NumClauses,
> +                                 const char *Name);
>  LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn);
>  LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef);
>
>
> Modified: llvm/trunk/lib/IR/Core.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Core.cpp?rev=242372&r1=242371&r2=242372&view=diff
> ==============================================================================
> --- llvm/trunk/lib/IR/Core.cpp (original)
> +++ llvm/trunk/lib/IR/Core.cpp Wed Jul 15 20:16:39 2015
> @@ -2257,7 +2257,14 @@ LLVMValueRef LLVMBuildInvoke(LLVMBuilder
>  }
>
>  LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty,
> -                                 unsigned NumClauses, const char *Name) {
> +                                 LLVMValueRef PersFn, unsigned NumClauses,
> +                                 const char *Name) {
> +  // The personality used to live on the landingpad instruction, but now it
> +  // lives on the parent function. For compatibility, take the provided
> +  // personality and put it on the parent function.
> +  if (PersFn)
> +    unwrap(B)->GetInsertBlock()->getParent()->setPersonalityFn(
> +        cast<Function>(unwrap(PersFn)));
>    return wrap(unwrap(B)->CreateLandingPad(unwrap(Ty), NumClauses, Name));
>  }
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list