remove the last vestiges of llvm::GetConstantStringInfo, in CodeGen.
authorChris Lattner <sabre@nondot.org>
Tue, 31 Jan 2012 05:09:17 +0000 (05:09 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 31 Jan 2012 05:09:17 +0000 (05:09 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149356 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/ValueTracking.h
lib/Analysis/ValueTracking.cpp
lib/CodeGen/SelectionDAG/SelectionDAG.cpp

index 65c4e77b46dc7d6bbb74c2a3b7a4f3cd68839f33..d994bc4fcdf9d9b9d340a81961244c9fded20e1e 100644 (file)
@@ -132,8 +132,8 @@ namespace llvm {
                              uint64_t Offset = 0);
 
   // FIXME: Remove this.
-  bool GetConstantStringInfo(const Value *V, std::string &Str,
-                             uint64_t Offset = 0);
// bool GetConstantStringInfo(const Value *V, std::string &Str,
//                            uint64_t Offset = 0);
 
   /// GetStringLength - If we can compute the length of the string pointed to by
   /// the specified pointer, return 'len+1'.  If we can't, return 0.
index d51d7f20ca9f619a1d1fcc654d608a69607589bd..4c18bdf1e53383dd168ed4fe7a5fa36e64dc0c95 100644 (file)
@@ -1603,16 +1603,6 @@ Value *llvm::GetPointerBaseWithConstantOffset(Value *Ptr, int64_t &Offset,
 }
 
 
-// FIXME: Remove this.
-bool llvm::GetConstantStringInfo(const Value *V, std::string &Str,
-                           uint64_t Offset) {
-  StringRef Tmp;
-  if (!getConstantStringInfo(V, Tmp, Offset))
-    return false;
-  Str = Tmp.str();
-  return true;
-}
-
 /// getConstantStringInfo - This function computes the length of a
 /// null-terminated C string pointed to by V.  If successful, it returns true
 /// and returns the string in Str.  If unsuccessful, it returns false.
index 6b6f7bf10d7e2c1704b38df47a1a1a6e1ae39f89..fe1a86131c8f6c354671b3e76692c66627dcd2f4 100644 (file)
@@ -3299,7 +3299,7 @@ static SDValue getMemsetValue(SDValue Value, EVT VT, SelectionDAG &DAG,
 /// string ptr.
 static SDValue getMemsetStringVal(EVT VT, DebugLoc dl, SelectionDAG &DAG,
                                   const TargetLowering &TLI,
-                                  std::string &Str, unsigned Offset) {
+                                  StringRef Str, unsigned Offset) {
   // Handle vector with all elements zero.
   if (Str.empty()) {
     if (VT.isInteger())
@@ -3343,7 +3343,7 @@ static SDValue getMemBasePlusOffset(SDValue Base, unsigned Offset,
 
 /// isMemSrcFromString - Returns true if memcpy source is a string constant.
 ///
-static bool isMemSrcFromString(SDValue Src, std::string &Str) {
+static bool isMemSrcFromString(SDValue Src, StringRef &Str) {
   unsigned SrcDelta = 0;
   GlobalAddressSDNode *G = NULL;
   if (Src.getOpcode() == ISD::GlobalAddress)
@@ -3358,11 +3358,8 @@ static bool isMemSrcFromString(SDValue Src, std::string &Str) {
     return false;
 
   if (const GlobalVariable *GV = dyn_cast<GlobalVariable>(G->getGlobal()))
-    if (GetConstantStringInfo(GV, Str, SrcDelta)) {
-      // The nul can also be read.
-      Str.push_back(0);
+    if (getConstantStringInfo(GV, Str, SrcDelta))
       return true;
-    }
 
   return false;
 }
@@ -3467,7 +3464,7 @@ static SDValue getMemcpyLoadsAndStores(SelectionDAG &DAG, DebugLoc dl,
   unsigned SrcAlign = DAG.InferPtrAlignment(Src);
   if (Align > SrcAlign)
     SrcAlign = Align;
-  std::string Str;
+  StringRef Str;
   bool CopyFromStr = isMemSrcFromString(Src, Str);
   bool isZeroStr = CopyFromStr && Str.empty();
   unsigned Limit = AlwaysInline ? ~0U : TLI.getMaxStoresPerMemcpy(OptSize);