diff options
author | Eric Christopher <echristo@apple.com> | 2008-06-26 00:31:12 +0000 |
---|---|---|
committer | Eric Christopher <echristo@apple.com> | 2008-06-26 00:31:12 +0000 |
commit | 0d2b0aba424bd3959bb5c807873def8f53e57a3c (patch) | |
tree | c8c5920b98cb731179014d6db62b95062800d8c4 /lib/CodeGen | |
parent | cda8875433ef74c39c4151d1a58df0588168b2e2 (diff) |
Move GetConstantStringInfo to lib/Analysis. Remove
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52748 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r-- | lib/CodeGen/MachineModuleInfo.cpp | 7 | ||||
-rw-r--r-- | lib/CodeGen/SelectionDAG/SelectionDAG.cpp | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/lib/CodeGen/MachineModuleInfo.cpp b/lib/CodeGen/MachineModuleInfo.cpp index 2bad6bba83..1720745e44 100644 --- a/lib/CodeGen/MachineModuleInfo.cpp +++ b/lib/CodeGen/MachineModuleInfo.cpp @@ -10,6 +10,7 @@ #include "llvm/CodeGen/MachineModuleInfo.h" #include "llvm/Constants.h" +#include "llvm/Analysis/ValueTracking.h" #include "llvm/CodeGen/MachineFunctionPass.h" #include "llvm/CodeGen/MachineFunction.h" #include "llvm/CodeGen/MachineLocation.h" @@ -230,7 +231,11 @@ public: } virtual void Apply(std::string &Field) { Constant *C = CI->getOperand(I++); - Field = C->getStringValue(); + std::string S; + if (GetConstantStringInfo(C, S)) + Field = S; + else + Field = ""; } virtual void Apply(DebugInfoDesc *&Field) { Constant *C = CI->getOperand(I++); diff --git a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp index f1c2ecf19d..9c5997df45 100644 --- a/lib/CodeGen/SelectionDAG/SelectionDAG.cpp +++ b/lib/CodeGen/SelectionDAG/SelectionDAG.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "llvm/CodeGen/SelectionDAG.h" #include "llvm/Constants.h" +#include "llvm/Analysis/ValueTracking.h" #include "llvm/GlobalAlias.h" #include "llvm/GlobalVariable.h" #include "llvm/Intrinsics.h" @@ -2594,8 +2595,7 @@ static bool isMemSrcFromString(SDOperand Src, std::string &Str, GlobalVariable *GV = dyn_cast<GlobalVariable>(G->getGlobal()); if (GV && GV->isConstant()) { - Str = GV->getStringValue(false); - if (!Str.empty()) { + if (GetConstantStringInfo(GV, Str)) { SrcOff += SrcDelta; return true; } |