diff options
| -rw-r--r-- | clang/lib/CodeGen/CGExprScalar.cpp | 7 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGObjC.cpp | 11 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGObjCGNU.cpp | 10 | ||||
| -rw-r--r-- | clang/lib/CodeGen/CGObjCRuntime.h | 2 | 
4 files changed, 10 insertions, 20 deletions
diff --git a/clang/lib/CodeGen/CGExprScalar.cpp b/clang/lib/CodeGen/CGExprScalar.cpp index 47bbd8827d4..ce49cb20d35 100644 --- a/clang/lib/CodeGen/CGExprScalar.cpp +++ b/clang/lib/CodeGen/CGExprScalar.cpp @@ -490,14 +490,9 @@ Value *ScalarExprEmitter::VisitObjCMessageExpr(ObjCMessageExpr *E) {      }    } -  // Get the selector string -  std::string SelStr = E->getSelector().getName(); -  llvm::Constant *Selector = CGF.CGM.GetAddrOfConstantString(SelStr); - -  llvm::Value *SelPtr = Builder.CreateStructGEP(Selector, 0);    return Runtime->GenerateMessageSend(Builder, ConvertType(E->getType()),                                        CGF.LoadObjCSelf(), -                                      Receiver, SelPtr, +                                      Receiver, E->getSelector(),                                        &Args[0], Args.size());  } diff --git a/clang/lib/CodeGen/CGObjC.cpp b/clang/lib/CodeGen/CGObjC.cpp index e9d20640b78..9bf53d9700d 100644 --- a/clang/lib/CodeGen/CGObjC.cpp +++ b/clang/lib/CodeGen/CGObjC.cpp @@ -86,14 +86,9 @@ llvm::Value *CodeGenFunction::EmitObjCMessageExpr(const ObjCMessageExpr *E) {      }    } -  // Get the selector string -  std::string SelStr = E->getSelector().getName(); -  llvm::Constant *Selector = CGM.GetAddrOfConstantString(SelStr); - -  llvm::Value *SelPtr = Builder.CreateStructGEP(Selector, 0);    if (isSuperMessage) { -    const ObjCMethodDecl *OMD = dyn_cast<ObjCMethodDecl>(CurFuncDecl); -    assert(OMD && "super is only valid in an Objective-C method"); +    // super is only valid in an Objective-C method +    const ObjCMethodDecl *OMD = cast<ObjCMethodDecl>(CurFuncDecl);      const char *SuperClass =        OMD->getClassInterface()->getSuperClass()->getName();      return Runtime->GenerateMessageSendSuper(Builder, ConvertType(E->getType()), @@ -103,7 +98,7 @@ llvm::Value *CodeGenFunction::EmitObjCMessageExpr(const ObjCMessageExpr *E) {    }    return Runtime->GenerateMessageSend(Builder, ConvertType(E->getType()),                                        LoadObjCSelf(), -                                      Receiver, SelPtr, +                                      Receiver, E->getSelector(),                                        &Args[0], Args.size());  } diff --git a/clang/lib/CodeGen/CGObjCGNU.cpp b/clang/lib/CodeGen/CGObjCGNU.cpp index 565167dc6f5..5fe182019f4 100644 --- a/clang/lib/CodeGen/CGObjCGNU.cpp +++ b/clang/lib/CodeGen/CGObjCGNU.cpp @@ -105,7 +105,7 @@ public:                                             const llvm::Type *ReturnTy,                                             llvm::Value *Sender,                                             llvm::Value *Receiver, -                                           llvm::Value *Selector, +                                           Selector Sel,                                             llvm::Value** ArgV,                                             unsigned ArgC);    virtual llvm::Value *GenerateMessageSendSuper(llvm::IRBuilder &Builder, @@ -116,8 +116,8 @@ public:                                                  Selector Sel,                                                  llvm::Value** ArgV,                                                  unsigned ArgC); -  virtual llvm::Value *LookupClass(llvm::IRBuilder &Builder, llvm::Value -      *ClassName); +  virtual llvm::Value *LookupClass(llvm::IRBuilder &Builder, +                                   llvm::Value *ClassName);    virtual llvm::Value *GetSelector(llvm::IRBuilder &Builder, Selector Sel);    virtual llvm::Value *GetSelector(llvm::IRBuilder &Builder,                                     llvm::Value *SelName, @@ -385,10 +385,10 @@ llvm::Value *CGObjCGNU::GenerateMessageSend(llvm::IRBuilder &Builder,                                              const llvm::Type *ReturnTy,                                              llvm::Value *Sender,                                              llvm::Value *Receiver, -                                            llvm::Value *Selector, +                                            Selector Sel,                                              llvm::Value** ArgV,                                              unsigned ArgC) { -  llvm::Value *cmd = GetSelector(Builder, Selector, 0); +  llvm::Value *cmd = GetSelector(Builder, Sel);    // Look up the method implementation.    std::vector<const llvm::Type*> impArgTypes; diff --git a/clang/lib/CodeGen/CGObjCRuntime.h b/clang/lib/CodeGen/CGObjCRuntime.h index 07d89620965..f9b029736de 100644 --- a/clang/lib/CodeGen/CGObjCRuntime.h +++ b/clang/lib/CodeGen/CGObjCRuntime.h @@ -46,7 +46,7 @@ public:                                             const llvm::Type *ReturnTy,                                             llvm::Value *Sender,                                             llvm::Value *Receiver, -                                           llvm::Value *Selector, +                                           Selector Sel,                                             llvm::Value** ArgV,                                             unsigned ArgC) =0;    /// Generate the function required to register all Objective-C components in  | 

