[cfe-commits] r54659 - in /cfe/trunk/lib/CodeGen: CGExprConstant.cpp CGObjC.cpp CGObjCGNU.cpp CGObjCMac.cpp CGObjCRuntime.h

Chris Lattner clattner at apple.com
Sat Aug 23 17:02:15 PDT 2008


On Aug 11, 2008, at 10:37 PM, Daniel Dunbar wrote:

> The purpose was to simplify the API since both consumers were making  
> std::strings
> after the call anyhow. This needs to be updated anyway as the  
> strings should probably
> be interned in the same way that CodeGenModule is interning c-strings.
>
> I'll change the interface to take the ObjCStringLiteral directly and  
> do the more efficient
> thing.

Ok.

> Note that on the string copying level of efficiency CodeGenModule  
> currently does more
> copying than it should. We should merge getStringForStringLiteral with
> GetAddrOfConstantString (once the terminating '\0' semantics are  
> worked out) and then
> it is easy to make efficient.

That would be nice, string thrashing causes heap thrashing, which is  
pretty expensive.  StringMap is also an efficient way to store/unique  
strings.  Maybe it could help.

-Chris




More information about the cfe-commits mailing list