Home | History | Annotate | Download | only in CodeGen

Lines Matching refs:CGF

439   llvm::Value *GetSelector(CodeGenFunction &CGF, Selector Sel,
449 virtual llvm::Value *GetClassNamed(CodeGenFunction &CGF,
454 virtual llvm::Value *LookupIMP(CodeGenFunction &CGF,
461 virtual llvm::Value *LookupIMPSuper(CodeGenFunction &CGF,
483 GenerateMessageSend(CodeGenFunction &CGF,
492 GenerateMessageSendSuper(CodeGenFunction &CGF,
502 virtual llvm::Value *GetClass(CodeGenFunction &CGF,
504 virtual llvm::Value *GetSelector(CodeGenFunction &CGF, Selector Sel,
506 virtual llvm::Value *GetSelector(CodeGenFunction &CGF, const ObjCMethodDecl
515 virtual llvm::Value *GenerateProtocolRef(CodeGenFunction &CGF,
529 virtual void EmitTryStmt(CodeGenFunction &CGF,
531 virtual void EmitSynchronizedStmt(CodeGenFunction &CGF,
533 virtual void EmitThrowStmt(CodeGenFunction &CGF,
536 virtual llvm::Value * EmitObjCWeakRead(CodeGenFunction &CGF,
538 virtual void EmitObjCWeakAssign(CodeGenFunction &CGF,
540 virtual void EmitObjCGlobalAssign(CodeGenFunction &CGF,
543 virtual void EmitObjCIvarAssign(CodeGenFunction &CGF,
546 virtual void EmitObjCStrongCastAssign(CodeGenFunction &CGF,
548 virtual void EmitGCMemmoveCollectable(CodeGenFunction &CGF,
552 virtual LValue EmitObjCValueForIvar(CodeGenFunction &CGF,
557 virtual llvm::Value *EmitIvarOffset(CodeGenFunction &CGF,
560 virtual llvm::Value *EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF);
596 virtual llvm::Value *LookupIMP(CodeGenFunction &CGF,
600 CGBuilderTy &Builder = CGF.Builder;
604 llvm::CallSite imp = CGF.EmitRuntimeCallOrInvoke(MsgLookupFn, args);
608 virtual llvm::Value *LookupIMPSuper(CodeGenFunction &CGF,
611 CGBuilderTy &Builder = CGF.Builder;
614 return CGF.EmitNounwindRuntimeCall(MsgLookupSuperFn, lookupArgs);
655 virtual llvm::Value *LookupIMP(CodeGenFunction &CGF,
659 CGBuilderTy &Builder = CGF.Builder;
663 llvm::Value *ReceiverPtr = CGF.CreateTempAlloca(Receiver->getType());
668 CGF.CurCodeDecl)) {
669 self = CGF.LoadObjCSelf();
681 llvm::CallSite slot = CGF.EmitRuntimeCallOrInvoke(LookupFn, args);
694 virtual llvm::Value *LookupIMPSuper(CodeGenFunction &CGF,
697 CGBuilderTy &Builder = CGF.Builder;
701 CGF.EmitNounwindRuntimeCall(SlotLookupSuperFn, lookupArgs);
805 virtual llvm::Value *LookupIMP(CodeGenFunction &CGF,
809 CGBuilderTy &Builder = CGF.Builder;
813 llvm::CallSite imp = CGF.EmitRuntimeCallOrInvoke(MsgLookupFn, args);
818 virtual llvm::Value *LookupIMPSuper(CodeGenFunction &CGF,
821 CGBuilderTy &Builder = CGF.Builder;
824 return CGF.EmitNounwindRuntimeCall(MsgLookupSuperFn, lookupArgs);
827 virtual llvm::Value *GetClassNamed(CodeGenFunction &CGF,
830 return CGObjCGNU::GetClassNamed(CGF, Name, isWeak);
1010 llvm::Value *CGObjCGNU::GetClassNamed(CodeGenFunction &CGF,
1023 ClassName = CGF.Builder.CreateStructGEP(ClassName, 0);
1028 return CGF.EmitNounwindRuntimeCall(ClassLookupFn, ClassName);
1033 llvm::Value *CGObjCGNU::GetClass(CodeGenFunction &CGF,
1035 return GetClassNamed(CGF, OID->getNameAsString(), OID->isWeakImported());
1037 llvm::Value *CGObjCGNU::EmitNSAutoreleasePoolClassRef(CodeGenFunction &CGF) {
1038 return GetClassNamed(CGF, "NSAutoreleasePool", false);
1041 llvm::Value *CGObjCGNU::GetSelector(CodeGenFunction &CGF, Selector Sel,
1064 llvm::Value *tmp = CGF.CreateTempAlloca(SelValue->getType());
1065 CGF.Builder.CreateStore(SelValue, tmp);
1071 llvm::Value *CGObjCGNU::GetSelector(CodeGenFunction &CGF, Selector Sel,
1073 return GetSelector(CGF, Sel, std::string(), lval);
1076 llvm::Value *CGObjCGNU::GetSelector(CodeGenFunction &CGF,
1080 return GetSelector(CGF, Method->getSelector(), SelTypes, false);
1209 CGObjCGNU::GenerateMessageSendSuper(CodeGenFunction &CGF,
1219 CGBuilderTy &Builder = CGF.Builder;
1230 llvm::Value *cmd = GetSelector(CGF, Sel);
1236 ActualArgs.add(RValue::get(cmd), CGF.getContext().getObjCSelType());
1294 llvm::Value *imp = LookupIMPSuper(CGF, ObjCSuper, cmd);
1305 RValue msgRet = CGF.EmitCall(MSI.CallInfo, imp, Return, ActualArgs, 0, &call);
1312 CGObjCGNU::GenerateMessageSend(CodeGenFunction &CGF,
1320 CGBuilderTy &Builder = CGF.Builder;
1353 messageBB = CGF.createBasicBlock("msgSend");
1354 continueBB = CGF.createBasicBlock("continue");
1359 CGF.EmitBlock(messageBB);
1365 cmd = GetSelector(CGF, Method);
1367 cmd = GetSelector(CGF, Sel);
1380 ActualArgs.add(RValue::get(cmd), CGF.getContext().getObjCSelType());
1393 imp = LookupIMP(CGF, Receiver, cmd, node);
1417 RValue msgRet = CGF.EmitCall(MSI.CallInfo, imp, Return, ActualArgs,
1423 messageBB = CGF.Builder.GetInsertBlock();
1424 CGF.Builder.CreateBr(continueBB);
1425 CGF.EmitBlock(continueBB);
1437 CGF.CreateTempAlloca(RetTy->getElementType(), "null");
1438 CGF.InitTempAlloca(NullVal,
1710 llvm::Value *CGObjCGNU::GenerateProtocolRef(CodeGenFunction &CGF,
1715 return CGF.Builder.CreateBitCast(protocol, llvm::PointerType::getUnqual(T));
2653 void CGObjCGNU::EmitSynchronizedStmt(CodeGenFunction &CGF,
2655 EmitAtSynchronizedStmt(CGF, S, SyncEnterFn, SyncExitFn);
2659 void CGObjCGNU::EmitTryStmt(CodeGenFunction &CGF,
2672 EmitTryCatchStmt(CGF, S, EnterCatchFn, ExitCatchFn, ExceptionReThrowFn);
2676 void CGObjCGNU::EmitThrowStmt(CodeGenFunction &CGF,
2682 llvm::Value *Exception = CGF.EmitObjCThrowOperand(ThrowExpr);
2685 assert((!CGF.ObjCEHValueStack.empty() && CGF.ObjCEHValueStack.back()) &&
2687 ExceptionAsObject = CGF.ObjCEHValueStack.back();
2689 ExceptionAsObject = CGF.Builder.CreateBitCast(ExceptionAsObject, IdTy);
2691 CGF.EmitRuntimeCallOrInvoke(ExceptionThrowFn, ExceptionAsObject);
2693 CGF.Builder.CreateUnreachable();
2695 CGF.Builder.ClearInsertionPoint();
2698 llvm::Value * CGObjCGNU::EmitObjCWeakRead(CodeGenFunction &CGF,
2700 CGBuilderTy &B = CGF.Builder;
2705 void CGObjCGNU::EmitObjCWeakAssign(CodeGenFunction &CGF,
2707 CGBuilderTy &B = CGF.Builder;
2713 void CGObjCGNU::EmitObjCGlobalAssign(CodeGenFunction &CGF,
2716 CGBuilderTy &B = CGF.Builder;
2726 void CGObjCGNU::EmitObjCIvarAssign(CodeGenFunction &CGF,
2729 CGBuilderTy &B = CGF.Builder;
2735 void CGObjCGNU::EmitObjCStrongCastAssign(CodeGenFunction &CGF,
2737 CGBuilderTy &B = CGF.Builder;
2743 void CGObjCGNU::EmitGCMemmoveCollectable(CodeGenFunction &CGF,
2747 CGBuilderTy &B = CGF.Builder;
2800 LValue CGObjCGNU::EmitObjCValueForIvar(CodeGenFunction &CGF,
2807 return EmitValueForIvarAtOffset(CGF, ID, BaseValue, Ivar, CVRQualifiers,
2808 EmitIvarOffset(CGF, ID, Ivar));
2827 llvm::Value *CGObjCGNU::EmitIvarOffset(CodeGenFunction &CGF,
2833 return CGF.Builder.CreateZExtOrBitCast(
2834 CGF.Builder.CreateLoad(CGF.Builder.CreateLoad(
2844 Offset = CGF.Builder.CreateLoad(Offset);
2846 Offset = CGF.Builder.CreateZExtOrBitCast(Offset, PtrDiffTy);
2849 uint64_t Offset = ComputeIvarBaseOffset(CGF.CGM, Interface, Ivar);