[llvm] r328858 - Revert "[LLVM-C] Finish exception instruction bindings"
Vlad Tsyrklevich via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 29 23:21:28 PDT 2018
Author: vlad.tsyrklevich
Date: Thu Mar 29 23:21:28 2018
New Revision: 328858
URL: http://llvm.org/viewvc/llvm-project?rev=328858&view=rev
Log:
Revert "[LLVM-C] Finish exception instruction bindings"
This reverts commit r328759. It was causing LSan failures on sanitizer-x86_64-linux-bootstrap
Modified:
llvm/trunk/include/llvm-c/Core.h
llvm/trunk/lib/IR/Core.cpp
llvm/trunk/test/Bindings/llvm-c/echo.ll
llvm/trunk/tools/llvm-c-test/echo.cpp
Modified: llvm/trunk/include/llvm-c/Core.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm-c/Core.h?rev=328858&r1=328857&r2=328858&view=diff
==============================================================================
--- llvm/trunk/include/llvm-c/Core.h (original)
+++ llvm/trunk/include/llvm-c/Core.h Thu Mar 29 23:21:28 2018
@@ -2555,12 +2555,11 @@ LLVMValueRef LLVMInstructionClone(LLVMVa
/**
* Obtain the argument count for a call instruction.
*
- * This expects an LLVMValueRef that corresponds to a llvm::CallInst,
- * llvm::InvokeInst, or llvm:FuncletPadInst.
+ * This expects an LLVMValueRef that corresponds to a llvm::CallInst or
+ * llvm::InvokeInst.
*
* @see llvm::CallInst::getNumArgOperands()
* @see llvm::InvokeInst::getNumArgOperands()
- * @see llvm::FuncletPadInst::getNumArgOperands()
*/
unsigned LLVMGetNumArgOperands(LLVMValueRef Instr);
@@ -2645,12 +2644,9 @@ LLVMBasicBlockRef LLVMGetNormalDest(LLVM
/**
* Return the unwind destination basic block.
*
- * Works on llvm::InvokeInst, llvm::CleanupReturnInst, and
- * llvm::CatchSwitchInst instructions.
+ * This only works on llvm::InvokeInst instructions.
*
* @see llvm::InvokeInst::getUnwindDest()
- * @see llvm::CleanupReturnInst::getUnwindDest()
- * @see llvm::CatchSwitchInst::getUnwindDest()
*/
LLVMBasicBlockRef LLVMGetUnwindDest(LLVMValueRef InvokeInst);
@@ -2666,12 +2662,9 @@ void LLVMSetNormalDest(LLVMValueRef Invo
/**
* Set the unwind destination basic block.
*
- * Works on llvm::InvokeInst, llvm::CleanupReturnInst, and
- * llvm::CatchSwitchInst instructions.
+ * This only works on llvm::InvokeInst instructions.
*
* @see llvm::InvokeInst::setUnwindDest()
- * @see llvm::CleanupReturnInst::setUnwindDest()
- * @see llvm::CatchSwitchInst::setUnwindDest()
*/
void LLVMSetUnwindDest(LLVMValueRef InvokeInst, LLVMBasicBlockRef B);
@@ -2900,26 +2893,11 @@ LLVMValueRef LLVMBuildInvoke(LLVMBuilder
LLVMValueRef *Args, unsigned NumArgs,
LLVMBasicBlockRef Then, LLVMBasicBlockRef Catch,
const char *Name);
-LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef);
-
-/* Exception Handling */
-LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn);
LLVMValueRef LLVMBuildLandingPad(LLVMBuilderRef B, LLVMTypeRef Ty,
LLVMValueRef PersFn, unsigned NumClauses,
const char *Name);
-LLVMValueRef LLVMBuildCleanupRet(LLVMBuilderRef B, LLVMValueRef CatchPad,
- LLVMBasicBlockRef BB);
-LLVMValueRef LLVMBuildCatchRet(LLVMBuilderRef B, LLVMValueRef CatchPad,
- LLVMBasicBlockRef BB);
-LLVMValueRef LLVMBuildCatchPad(LLVMBuilderRef B, LLVMValueRef ParentPad,
- LLVMValueRef *Args, unsigned NumArgs,
- const char *Name);
-LLVMValueRef LLVMBuildCleanupPad(LLVMBuilderRef B, LLVMValueRef ParentPad,
- LLVMValueRef *Args, unsigned NumArgs,
- const char *Name);
-LLVMValueRef LLVMBuildCatchSwitch(LLVMBuilderRef B, LLVMValueRef ParentPad,
- LLVMBasicBlockRef UnwindBB,
- unsigned NumHandlers, const char *Name);
+LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn);
+LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef);
/* Add a case to the switch instruction */
void LLVMAddCase(LLVMValueRef Switch, LLVMValueRef OnVal,
@@ -2943,51 +2921,6 @@ LLVMBool LLVMIsCleanup(LLVMValueRef Land
/* Set the 'cleanup' flag in the landingpad instruction */
void LLVMSetCleanup(LLVMValueRef LandingPad, LLVMBool Val);
-/* Add a destination to the catchswitch instruction */
-void LLVMAddHandler(LLVMValueRef CatchSwitch, LLVMBasicBlockRef Dest);
-
-/* Get the number of handlers on the catchswitch instruction */
-unsigned LLVMGetNumHandlers(LLVMValueRef CatchSwitch);
-
-/**
- * Obtain the basic blocks acting as handlers for a catchswitch instruction.
- *
- * The Handlers parameter should point to a pre-allocated array of
- * LLVMBasicBlockRefs at least LLVMGetNumHandlers() large. On return, the
- * first LLVMGetNumHandlers() entries in the array will be populated
- * with LLVMBasicBlockRef instances.
- *
- * @param CatchSwitch The catchswitch instruction to operate on.
- * @param Handlers Memory address of an array to be filled with basic blocks.
- */
-void LLVMGetHandlers(LLVMValueRef CatchSwitch, LLVMBasicBlockRef *Handlers);
-
-/* Funclets */
-
-/* Get the number of funcletpad arguments. */
-LLVMValueRef LLVMGetArgOperand(LLVMValueRef Funclet, unsigned i);
-
-/* Set a funcletpad argument at the given index. */
-void LLVMSetArgOperand(LLVMValueRef Funclet, unsigned i, LLVMValueRef value);
-
-/**
- * Get the parent catchswitch instruction of a catchpad instruction.
- *
- * This only works on llvm::CatchPadInst instructions.
- *
- * @see llvm::CatchPadInst::getCatchSwitch()
- */
-LLVMValueRef LLVMGetParentCatchSwitch(LLVMValueRef CatchPad);
-
-/**
- * Set the parent catchswitch instruction of a catchpad instruction.
- *
- * This only works on llvm::CatchPadInst instructions.
- *
- * @see llvm::CatchPadInst::setCatchSwitch()
- */
-void LLVMSetParentCatchSwitch(LLVMValueRef CatchPad, LLVMValueRef CatchSwitch);
-
/* Arithmetic */
LLVMValueRef LLVMBuildAdd(LLVMBuilderRef, LLVMValueRef LHS, LLVMValueRef RHS,
const char *Name);
Modified: llvm/trunk/lib/IR/Core.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Core.cpp?rev=328858&r1=328857&r2=328858&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Core.cpp (original)
+++ llvm/trunk/lib/IR/Core.cpp Thu Mar 29 23:21:28 2018
@@ -2196,15 +2196,12 @@ LLVMValueRef LLVMInstructionClone(LLVMVa
return nullptr;
}
+/*--.. Call and invoke instructions ........................................--*/
+
unsigned LLVMGetNumArgOperands(LLVMValueRef Instr) {
- if (FuncletPadInst *FPI = dyn_cast<FuncletPadInst>(unwrap(Instr))) {
- return FPI->getNumArgOperands();
- }
return CallSite(unwrap<Instruction>(Instr)).getNumArgOperands();
}
-/*--.. Call and invoke instructions ........................................--*/
-
unsigned LLVMGetInstructionCallConv(LLVMValueRef Instr) {
return CallSite(unwrap<Instruction>(Instr)).getCallingConv();
}
@@ -2287,11 +2284,6 @@ LLVMBasicBlockRef LLVMGetNormalDest(LLVM
}
LLVMBasicBlockRef LLVMGetUnwindDest(LLVMValueRef Invoke) {
- if (CleanupReturnInst *CRI = dyn_cast<CleanupReturnInst>(unwrap(Invoke))) {
- return wrap(CRI->getUnwindDest());
- } else if (CatchSwitchInst *CSI = dyn_cast<CatchSwitchInst>(unwrap(Invoke))) {
- return wrap(CSI->getUnwindDest());
- }
return wrap(unwrap<InvokeInst>(Invoke)->getUnwindDest());
}
@@ -2300,11 +2292,6 @@ void LLVMSetNormalDest(LLVMValueRef Invo
}
void LLVMSetUnwindDest(LLVMValueRef Invoke, LLVMBasicBlockRef B) {
- if (CleanupReturnInst *CRI = dyn_cast<CleanupReturnInst>(unwrap(Invoke))) {
- return CRI->setUnwindDest(unwrap(B));
- } else if (CatchSwitchInst *CSI = dyn_cast<CatchSwitchInst>(unwrap(Invoke))) {
- return CSI->setUnwindDest(unwrap(B));
- }
unwrap<InvokeInst>(Invoke)->setUnwindDest(unwrap(B));
}
@@ -2526,53 +2513,10 @@ LLVMValueRef LLVMBuildLandingPad(LLVMBui
return wrap(unwrap(B)->CreateLandingPad(unwrap(Ty), NumClauses, Name));
}
-LLVMValueRef LLVMBuildCatchPad(LLVMBuilderRef B, LLVMValueRef ParentPad,
- LLVMValueRef *Args, unsigned NumArgs,
- const char *Name) {
- return wrap(unwrap(B)->CreateCatchPad(unwrap(ParentPad),
- makeArrayRef(unwrap(Args), NumArgs),
- Name));
-}
-
-LLVMValueRef LLVMBuildCleanupPad(LLVMBuilderRef B, LLVMValueRef ParentPad,
- LLVMValueRef *Args, unsigned NumArgs,
- const char *Name) {
- if (ParentPad == nullptr) {
- Type *Ty = Type::getTokenTy(unwrap(B)->getContext());
- ParentPad = wrap(Constant::getNullValue(Ty));
- }
- return wrap(unwrap(B)->CreateCleanupPad(unwrap(ParentPad),
- makeArrayRef(unwrap(Args), NumArgs),
- Name));
-}
-
LLVMValueRef LLVMBuildResume(LLVMBuilderRef B, LLVMValueRef Exn) {
return wrap(unwrap(B)->CreateResume(unwrap(Exn)));
}
-LLVMValueRef LLVMBuildCatchSwitch(LLVMBuilderRef B, LLVMValueRef ParentPad,
- LLVMBasicBlockRef UnwindBB,
- unsigned NumHandlers, const char *Name) {
- if (ParentPad == nullptr) {
- Type *Ty = Type::getTokenTy(unwrap(B)->getContext());
- ParentPad = wrap(Constant::getNullValue(Ty));
- }
- return wrap(unwrap(B)->CreateCatchSwitch(unwrap(ParentPad), unwrap(UnwindBB),
- NumHandlers, Name));
-}
-
-LLVMValueRef LLVMBuildCatchRet(LLVMBuilderRef B, LLVMValueRef CatchPad,
- LLVMBasicBlockRef BB) {
- return wrap(unwrap(B)->CreateCatchRet(unwrap<CatchPadInst>(CatchPad),
- unwrap(BB)));
-}
-
-LLVMValueRef LLVMBuildCleanupRet(LLVMBuilderRef B, LLVMValueRef CatchPad,
- LLVMBasicBlockRef BB) {
- return wrap(unwrap(B)->CreateCleanupRet(unwrap<CleanupPadInst>(CatchPad),
- unwrap(BB)));
-}
-
LLVMValueRef LLVMBuildUnreachable(LLVMBuilderRef B) {
return wrap(unwrap(B)->CreateUnreachable());
}
@@ -2607,40 +2551,6 @@ void LLVMSetCleanup(LLVMValueRef Landing
unwrap<LandingPadInst>(LandingPad)->setCleanup(Val);
}
-void LLVMAddHandler(LLVMValueRef CatchSwitch, LLVMBasicBlockRef Dest) {
- unwrap<CatchSwitchInst>(CatchSwitch)->addHandler(unwrap(Dest));
-}
-
-unsigned LLVMGetNumHandlers(LLVMValueRef CatchSwitch) {
- return unwrap<CatchSwitchInst>(CatchSwitch)->getNumHandlers();
-}
-
-void LLVMGetHandlers(LLVMValueRef CatchSwitch, LLVMBasicBlockRef *Handlers) {
- CatchSwitchInst *CSI = unwrap<CatchSwitchInst>(CatchSwitch);
- for (CatchSwitchInst::handler_iterator I = CSI->handler_begin(),
- E = CSI->handler_end(); I != E; ++I)
- *Handlers++ = wrap(*I);
-}
-
-LLVMValueRef LLVMGetParentCatchSwitch(LLVMValueRef CatchPad) {
- return wrap(unwrap<CatchPadInst>(CatchPad)->getCatchSwitch());
-}
-
-void LLVMSetParentCatchSwitch(LLVMValueRef CatchPad, LLVMValueRef CatchSwitch) {
- unwrap<CatchPadInst>(CatchPad)
- ->setCatchSwitch(unwrap<CatchSwitchInst>(CatchSwitch));
-}
-
-/*--.. Funclets ...........................................................--*/
-
-LLVMValueRef LLVMGetArgOperand(LLVMValueRef Funclet, unsigned i) {
- return wrap(unwrap<FuncletPadInst>(Funclet)->getArgOperand(i));
-}
-
-void LLVMSetArgOperand(LLVMValueRef Funclet, unsigned i, LLVMValueRef value) {
- unwrap<FuncletPadInst>(Funclet)->setArgOperand(i, unwrap(value));
-}
-
/*--.. Arithmetic ..........................................................--*/
LLVMValueRef LLVMBuildAdd(LLVMBuilderRef B, LLVMValueRef LHS, LLVMValueRef RHS,
Modified: llvm/trunk/test/Bindings/llvm-c/echo.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bindings/llvm-c/echo.ll?rev=328858&r1=328857&r2=328858&view=diff
==============================================================================
--- llvm/trunk/test/Bindings/llvm-c/echo.ll (original)
+++ llvm/trunk/test/Bindings/llvm-c/echo.ll Thu Mar 29 23:21:28 2018
@@ -122,38 +122,3 @@ do:
done:
ret i32 %p
}
-
-declare void @personalityFn()
-
-define void @exn() personality void ()* @personalityFn {
-entry:
- invoke void @decl()
- to label %via.cleanup unwind label %exn.dispatch
-via.cleanup:
- invoke void @decl()
- to label %via.catchswitch unwind label %cleanup.inner
-cleanup.inner:
- %cp.inner = cleanuppad within none []
- cleanupret from %cp.inner unwind label %exn.dispatch
-via.catchswitch:
- invoke void @decl()
- to label %exit unwind label %dispatch.inner
-dispatch.inner:
- %cs.inner = catchswitch within none [label %pad.inner] unwind label %exn.dispatch
-pad.inner:
- %catch.inner = catchpad within %cs.inner [i32 0]
- catchret from %catch.inner to label %exit
-exn.dispatch:
- %cs = catchswitch within none [label %pad1, label %pad2] unwind label %cleanup
-pad1:
- catchpad within %cs [i32 1]
- unreachable
-pad2:
- catchpad within %cs [i32 2]
- unreachable
-cleanup:
- %cp = cleanuppad within none []
- cleanupret from %cp unwind to caller
-exit:
- ret void
-}
Modified: llvm/trunk/tools/llvm-c-test/echo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-c-test/echo.cpp?rev=328858&r1=328857&r2=328858&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-c-test/echo.cpp (original)
+++ llvm/trunk/tools/llvm-c-test/echo.cpp Thu Mar 29 23:21:28 2018
@@ -146,8 +146,8 @@ struct TypeCloner {
return LLVMMetadataTypeInContext(Ctx);
case LLVMX86_MMXTypeKind:
return LLVMX86MMXTypeInContext(Ctx);
- case LLVMTokenTypeKind:
- return LLVMTokenTypeInContext(Ctx);
+ default:
+ break;
}
fprintf(stderr, "%d is not a supported typekind\n", Kind);
@@ -311,13 +311,6 @@ static LLVMValueRef clone_constant_impl(
return LLVMGetUndef(TypeCloner(M).Clone(Cst));
}
- // Try null
- if (LLVMIsNull(Cst)) {
- check_value_kind(Cst, LLVMConstantTokenNoneValueKind);
- LLVMTypeRef Ty = TypeCloner(M).Clone(Cst);
- return LLVMConstNull(Ty);
- }
-
// Try float literal
if (LLVMIsAConstantFP(Cst)) {
check_value_kind(Cst, LLVMConstantFPValueKind);
@@ -638,57 +631,6 @@ struct FunCloner {
LLVMSetCleanup(Dst, LLVMIsCleanup(Src));
break;
}
- case LLVMCleanupRet: {
- LLVMValueRef CatchPad = CloneValue(LLVMGetOperand(Src, 0));
- LLVMBasicBlockRef Unwind = nullptr;
- if (LLVMBasicBlockRef UDest = LLVMGetUnwindDest(Src))
- Unwind = DeclareBB(UDest);
- Dst = LLVMBuildCleanupRet(Builder, CatchPad, Unwind);
- break;
- }
- case LLVMCatchRet: {
- LLVMValueRef CatchPad = CloneValue(LLVMGetOperand(Src, 0));
- LLVMBasicBlockRef SuccBB = DeclareBB(LLVMGetSuccessor(Src, 0));
- Dst = LLVMBuildCatchRet(Builder, CatchPad, SuccBB);
- break;
- }
- case LLVMCatchPad: {
- LLVMValueRef ParentPad = CloneValue(LLVMGetParentCatchSwitch(Src));
- SmallVector<LLVMValueRef, 8> Args;
- int ArgCount = LLVMGetNumArgOperands(Src);
- for (int i = 0; i < ArgCount; i++)
- Args.push_back(CloneValue(LLVMGetOperand(Src, i)));
- Dst = LLVMBuildCatchPad(Builder, ParentPad,
- Args.data(), ArgCount, Name);
- break;
- }
- case LLVMCleanupPad: {
- LLVMValueRef ParentPad = CloneValue(LLVMGetOperand(Src, 0));
- SmallVector<LLVMValueRef, 8> Args;
- int ArgCount = LLVMGetNumArgOperands(Src);
- for (int i = 0; i < ArgCount; i++)
- Args.push_back(CloneValue(LLVMGetArgOperand(Src, i)));
- Dst = LLVMBuildCleanupPad(Builder, ParentPad,
- Args.data(), ArgCount, Name);
- break;
- }
- case LLVMCatchSwitch: {
- LLVMValueRef ParentPad = CloneValue(LLVMGetOperand(Src, 0));
- LLVMBasicBlockRef UnwindBB = nullptr;
- if (LLVMBasicBlockRef UDest = LLVMGetUnwindDest(Src)) {
- UnwindBB = DeclareBB(UDest);
- }
- unsigned NumHandlers = LLVMGetNumHandlers(Src);
- Dst = LLVMBuildCatchSwitch(Builder, ParentPad, UnwindBB, NumHandlers, Name);
- if (NumHandlers > 0) {
- LLVMBasicBlockRef *Handlers = static_cast<LLVMBasicBlockRef*>(
- safe_malloc(NumHandlers * sizeof(LLVMBasicBlockRef)));
- LLVMGetHandlers(Src, Handlers);
- for (unsigned i = 0; i < NumHandlers; i++)
- LLVMAddHandler(Dst, DeclareBB(Handlers[i]));
- }
- break;
- }
case LLVMExtractValue: {
LLVMValueRef Agg = CloneValue(LLVMGetOperand(Src, 0));
if (LLVMGetNumIndices(Src) != 1)
More information about the llvm-commits
mailing list