[cfe-commits] r69797 - in /cfe/trunk/lib/CodeGen: CGObjCMac.cpp CodeGenModule.cpp CodeGenTypes.cpp CodeGenTypes.h

Chris Lattner clattner at apple.com
Wed Apr 22 19:08:36 PDT 2009


On Apr 22, 2009, at 5:53 PM, Daniel Dunbar wrote:

> No particular reason, really. Using an opaque type was a nice way to  
> make sure no unexpected uses of the type crept in, and we may want  
> to name them still? If we don't care about names, I'm fine switching  
> this to {}*.

This is not a high priority in the really short term, but using {}*  
consistently will eliminate the need for a map: all interfaces just go  
to a single type.  This will lose the names from the IR though (which  
are sometimes useful when looking at dumps)

-Chris

>
>
>  - Daniel
>
> p.s. What are the TBAA rules for Objective-C? :)
>
> On Wed, Apr 22, 2009 at 2:31 PM, Chris Lattner <clattner at apple.com>  
> wrote:
>
> On Apr 22, 2009, at 3:28 AM, Daniel Dunbar wrote:
>
>
> +  /// The opaque type map for Objective-C interfaces. All direct
> +  /// manipulation is done by the runtime interfaces, which are
> +  /// responsible for coercing to the appropriate type; these opaque
> +  /// types are never refined.
> +  llvm::DenseMap<const ObjCInterfaceType*, const llvm::Type *>  
> InterfaceTypes;
> +
>
> This is cool daniel, but why use an opaque type pointer here?  Why  
> not just compile all interface pointer types to i8* or {}* or  
> something?
>
> -Chris
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20090422/07ce70fb/attachment.html>


More information about the cfe-commits mailing list