diff options
| author | Chris Lattner <sabre@nondot.org> | 2012-02-05 02:29:43 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2012-02-05 02:29:43 +0000 |
| commit | cf9e8f6968af1e5871b535a06a6bff45de49e4bf (patch) | |
| tree | 00731766834527ed56ba142710486c79d01c875e /llvm/lib/VMCore/IRBuilder.cpp | |
| parent | 2c1dd2716a07a173773ac2ba04b5f2da73a1fc6c (diff) | |
| download | bcm5719-llvm-cf9e8f6968af1e5871b535a06a6bff45de49e4bf.tar.gz bcm5719-llvm-cf9e8f6968af1e5871b535a06a6bff45de49e4bf.zip | |
reapply the patches reverted in r149470 that reenable ConstantDataArray,
but with a critical fix to the SelectionDAG code that optimizes copies
from strings into immediate stores: the previous code was stopping reading
string data at the first nul. Address this by adding a new argument to
llvm::getConstantStringInfo, preserving the behavior before the patch.
llvm-svn: 149800
Diffstat (limited to 'llvm/lib/VMCore/IRBuilder.cpp')
| -rw-r--r-- | llvm/lib/VMCore/IRBuilder.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/VMCore/IRBuilder.cpp b/llvm/lib/VMCore/IRBuilder.cpp index 0994394aefd..b45923489af 100644 --- a/llvm/lib/VMCore/IRBuilder.cpp +++ b/llvm/lib/VMCore/IRBuilder.cpp @@ -24,7 +24,7 @@ using namespace llvm; /// specified. If Name is specified, it is the name of the global variable /// created. Value *IRBuilderBase::CreateGlobalString(StringRef Str, const Twine &Name) { - Constant *StrConstant = ConstantArray::get(Context, Str, true); + Constant *StrConstant = ConstantDataArray::getString(Context, Str); Module &M = *BB->getParent()->getParent(); GlobalVariable *GV = new GlobalVariable(M, StrConstant->getType(), true, GlobalValue::PrivateLinkage, |

