[llvm-commits] [124166] writable strings shouldn't be cached.
clattner at apple.com
clattner at apple.com
Wed Feb 21 19:28:55 PST 2007
Revision: 124166
Author: clattner
Date: 2007-02-21 19:28:53 -0800 (Wed, 21 Feb 2007)
Log Message:
-----------
writable strings shouldn't be cached.
Modified Paths:
--------------
apple-local/branches/llvm/gcc/llvm-convert.cpp
Modified: apple-local/branches/llvm/gcc/llvm-convert.cpp
===================================================================
--- apple-local/branches/llvm/gcc/llvm-convert.cpp 2007-02-22 01:53:25 UTC (rev 124165)
+++ apple-local/branches/llvm/gcc/llvm-convert.cpp 2007-02-22 03:28:53 UTC (rev 124166)
@@ -5229,16 +5229,18 @@
Constant *TreeConstantToLLVM::EmitLV_STRING_CST(tree exp) {
Constant *Init = TreeConstantToLLVM::ConvertSTRING_CST(exp);
-
- // Cache the string constants to avoid making obvious duplicate strings that
- // have to be folded by the optimizer.
- static std::map<Constant*, GlobalVariable*> StringCSTCache;
- GlobalVariable *&Slot = StringCSTCache[Init];
- if (Slot) return Slot;
-
+
// Support -fwritable-strings.
bool StringIsConstant = !flag_writable_strings;
-
+
+ if (StringIsConstant) {
+ // Cache the string constants to avoid making obvious duplicate strings that
+ // have to be folded by the optimizer.
+ static std::map<Constant*, GlobalVariable*> StringCSTCache;
+ GlobalVariable *&Slot = StringCSTCache[Init];
+ if (Slot) return Slot;
+ }
+
// Create a new string global.
return Slot = new GlobalVariable(Init->getType(), StringIsConstant,
GlobalVariable::InternalLinkage,
More information about the llvm-commits
mailing list