[cfe-commits] r52761 - in /cfe/trunk/lib/CodeGen: CGObjCGNU.cpp CGObjCRuntime.h

Chris Lattner sabre at nondot.org
Wed Jun 25 21:44:19 PDT 2008


Author: lattner
Date: Wed Jun 25 23:44:19 2008
New Revision: 52761

URL: http://llvm.org/viewvc/llvm-project?rev=52761&view=rev
Log:
remove the old getSelector implementation, which removes some
calls to getStringValue

Modified:
    cfe/trunk/lib/CodeGen/CGObjCGNU.cpp
    cfe/trunk/lib/CodeGen/CGObjCRuntime.h

Modified: cfe/trunk/lib/CodeGen/CGObjCGNU.cpp
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCGNU.cpp?rev=52761&r1=52760&r2=52761&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGObjCGNU.cpp (original)
+++ cfe/trunk/lib/CodeGen/CGObjCGNU.cpp Wed Jun 25 23:44:19 2008
@@ -119,9 +119,6 @@
   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,
-                                   llvm::Value *SelTypes);
   
   virtual llvm::Function *MethodPreamble(
                                          const std::string &ClassName,
@@ -235,64 +232,8 @@
   
 }
 
-/// Looks up the selector for the specified name / type pair.
-// FIXME: Selectors should be statically cached, not looked up on every call.
-llvm::Value *CGObjCGNU::GetSelector(llvm::IRBuilder &Builder,
-                                    llvm::Value *SelName,
-                                    llvm::Value *SelTypes) {
-  // For static selectors, we return an alias for now then store them all in a
-  // list that the runtime will initialise later.
-  if (llvm::Constant *CName = dyn_cast<llvm::Constant>(SelName)) {
-    // Untyped selector
-    if (SelTypes == 0) {
-      // If it's already cached, return it.
-      llvm::GlobalAlias *&US = UntypedSelectors[getStringValue(CName)];
-      if (US == 0) {
-        // If it isn't, cache it.
-        US = new llvm::GlobalAlias(llvm::PointerType::getUnqual(SelectorTy),
-                                   llvm::GlobalValue::InternalLinkage,
-                                   ".objc_untyped_selector_alias",
-                                   NULL, &TheModule);
-      }
-      return Builder.CreateLoad(US);
-    }
-    // Typed selectors
-    if (llvm::Constant *CTypes = dyn_cast<llvm::Constant>(SelTypes)) {
-      TypedSelector Selector = TypedSelector(getStringValue(CName),
-                                             getStringValue(CTypes));
-      // If it's already cached, return it.
-      llvm::GlobalAlias *&TS = TypedSelectors[Selector];
-      if (TS == 0) {
-        // If it isn't, cache it.
-        TS = new llvm::GlobalAlias(llvm::PointerType::getUnqual(SelectorTy),
-                                   llvm::GlobalValue::InternalLinkage,
-                                   ".objc_typed_selector_alias",
-                                   NULL, &TheModule);
-      }
-      return Builder.CreateLoad(TS);
-    }
-  }
-  // Dynamically look up selectors from non-constant sources
-  llvm::Value *cmd;
-  if (SelTypes == 0) {
-    llvm::Constant *SelFunction = TheModule.getOrInsertFunction("sel_get_uid", 
-                                                                SelectorTy, 
-                                                                PtrToInt8Ty, 
-                                                                NULL);
-    cmd = Builder.CreateCall(SelFunction, SelName);
-  }
-  else {
-    llvm::Constant *SelFunction = 
-      TheModule.getOrInsertFunction("sel_get_typed_uid",
-                                    SelectorTy, PtrToInt8Ty, PtrToInt8Ty, NULL);
-    cmd = Builder.CreateCall2(SelFunction, SelName, SelTypes);
-  }
-  return cmd;
-}
-
-
-llvm::Constant *CGObjCGNU::MakeConstantString(const std::string &Str, const
-    std::string &Name) {
+llvm::Constant *CGObjCGNU::MakeConstantString(const std::string &Str,
+                                              const std::string &Name) {
   llvm::Constant * ConstStr = llvm::ConstantArray::get(Str);
   ConstStr = new llvm::GlobalVariable(ConstStr->getType(), true, 
                                llvm::GlobalValue::InternalLinkage,

Modified: cfe/trunk/lib/CodeGen/CGObjCRuntime.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/CodeGen/CGObjCRuntime.h?rev=52761&r1=52760&r2=52761&view=diff

==============================================================================
--- cfe/trunk/lib/CodeGen/CGObjCRuntime.h (original)
+++ cfe/trunk/lib/CodeGen/CGObjCRuntime.h Wed Jun 25 23:44:19 2008
@@ -54,9 +54,6 @@
   virtual llvm::Function *ModuleInitFunction() =0;
   /// Get a selector for the specified name and type values
   virtual llvm::Value *GetSelector(llvm::IRBuilder &Builder, Selector Sel) = 0;
-  virtual llvm::Value *GetSelector(llvm::IRBuilder &Builder,
-                                   llvm::Value *SelName,
-                                   llvm::Value *SelTypes) = 0;
   /// Generate a constant string object
   virtual llvm::Constant *GenerateConstantString(const char *String,
                                                  const size_t Length) = 0;





More information about the cfe-commits mailing list