From dd5c98f709837e5dd3da08d44d1ce407975df2cf Mon Sep 17 00:00:00 2001 From: David Chisnall Date: Sat, 1 May 2010 11:15:56 +0000 Subject: Tweaked EmitCall() to permit the caller to provide some metadata to attach to the call site. Used this in CGObjCGNU to attach metadata about message sends to permit speculative inlining. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102833 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/CodeGen/CGCall.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'lib/CodeGen/CGCall.cpp') diff --git a/lib/CodeGen/CGCall.cpp b/lib/CodeGen/CGCall.cpp index 8b5c3a0f6c..f7db0d19a2 100644 --- a/lib/CodeGen/CGCall.cpp +++ b/lib/CodeGen/CGCall.cpp @@ -869,7 +869,9 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, llvm::Value *Callee, ReturnValueSlot ReturnValue, const CallArgList &CallArgs, - const Decl *TargetDecl) { + const Decl *TargetDecl, + unsigned MDKind, + llvm::MDNode *Metadata) { // FIXME: We no longer need the types from CallArgs; lift up and simplify. llvm::SmallVector Args; @@ -995,6 +997,9 @@ RValue CodeGenFunction::EmitCall(const CGFunctionInfo &CallInfo, Args.data(), Args.data()+Args.size()); EmitBlock(Cont); } + if (Metadata) { + CS->setMetadata(MDKind, Metadata); + } CS.setAttributes(Attrs); CS.setCallingConv(static_cast(CallingConv)); -- cgit v1.2.3-18-g5258