reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
944 CGBuilderTy::InsertPoint SavedIP = CGF.Builder.saveIP(); 945 CGF.EmitBlockAfterUses(DispatchBlock); 947 llvm::Value *ParentPad = CGF.CurrentFuncletPad; 949 ParentPad = llvm::ConstantTokenNone::get(CGF.getLLVMContext()); 951 CGF.getEHDispatchBlock(CatchScope.getEnclosingEHScope()); 955 CGF.Builder.CreateCatchSwitch(ParentPad, UnwindBB, NumHandlers); 959 llvm::BasicBlock *WasmCatchStartBlock = CGF.createBasicBlock("catch.start"); 961 CGF.EmitBlockAfterUses(WasmCatchStartBlock); 969 TypeInfo.RTTI = llvm::Constant::getNullValue(CGF.VoidPtrTy); 972 auto *CPI = CGF.Builder.CreateCatchPad(CatchSwitch, CatchTypes); 978 CGF.CGM.getIntrinsic(llvm::Intrinsic::wasm_get_exception); 980 CGF.CGM.getIntrinsic(llvm::Intrinsic::wasm_get_ehselector); 981 llvm::CallInst *Exn = CGF.Builder.CreateCall(GetExnFn, CPI); 982 CGF.Builder.CreateStore(Exn, CGF.getExceptionSlot()); 982 CGF.Builder.CreateStore(Exn, CGF.getExceptionSlot()); 983 llvm::CallInst *Selector = CGF.Builder.CreateCall(GetSelectorFn, CPI); 985 llvm::Function *TypeIDFn = CGF.CGM.getIntrinsic(llvm::Intrinsic::eh_typeid_for); 990 CGF.Builder.CreateBr(CatchScope.getHandler(0).Block); 991 CGF.Builder.restoreIP(SavedIP); 1001 TypeInfo.RTTI = llvm::Constant::getNullValue(CGF.VoidPtrTy); 1012 NextBlock = CGF.createBasicBlock("rethrow"); 1024 NextBlock = CGF.createBasicBlock("catch.fallthrough"); 1029 llvm::CallInst *TypeIndex = CGF.Builder.CreateCall(TypeIDFn, TypeInfo.RTTI); 1033 CGF.Builder.CreateICmpEQ(Selector, TypeIndex, "matches"); 1034 CGF.Builder.CreateCondBr(MatchesTypeIndex, Handler.Block, NextBlock); 1037 CGF.EmitBlock(NextBlock); 1042 CGF.Builder.restoreIP(SavedIP);