[LLVMdev] GC patches again
Chris Lattner
clattner at apple.com
Fri Nov 30 11:40:53 PST 2007
>> Attached. This makes the last change set compatible with the new
>> hand-written lexer—a whole one line change!
>>
>> See the readme file in the zip archive.
Hi Gordon, here's some feedback:
include/llvm/Support/StringPool.h (+124)
lib/Support/StringPool.cpp (+52)
A reference-counted string interning facility. Will be used by the
next patch.
This implementation is not as fast as it could be, I'd suggest
switching to using StringMap<char> (char being a dummy). However,
this is a fine starting point, the implementation can be tuned later.
About the interface:
+ PooledStringPtr intern(const std::string &Str);
Instead of taking an std::string, please provide two versions:
PooledStringPtr intern(const char *StrStart, const char *StrEnd);
and:
PooledStringPtr intern(const char *CStr) { return intern(CStr,
CStr+strlen(CStr); }
This discourages string abuse/copying: std::string is not very
efficient.
Also, in PooledStringPtr, please make the accessor not return an
std::string.
//===-- gc-5-funattr.patch (+120 -47) -------------------------===//
Adds these methods to Function and makes corresponding changes to
assembly and bitcode:
The assembly representation is as such:
define void @f() gc "shadow-stack" { ...
Uses StringPool to unique collector names, which are extremely
likely to be unique per process.
This patch depends on gc-4-stringpool.
Can you please explain to me again why this is needed? I'd like to
avoid growing Function by another word for GC, is there another way?
-Chris
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071130/dd723439/attachment.html>
More information about the llvm-dev
mailing list