Compile-fix after StringRef's conversion operator has been made explicit.
authorMichael Kruse <llvm-project@meinersbur.de>
Thu, 6 Feb 2020 04:23:29 +0000 (22:23 -0600)
committerMichael Kruse <llvm-project@meinersbur.de>
Thu, 6 Feb 2020 04:28:05 +0000 (22:28 -0600)
Commit 777180a "[ADT] Make StringRef's std::string conversion operator explicit"
caused Polly's GPU code generator to not compile anymore. The rest of
Polly has already been fixed in commit
0257a9 "Fix polly build after StringRef change."

polly/lib/CodeGen/ManagedMemoryRewrite.cpp
polly/lib/CodeGen/PPCGCodeGeneration.cpp

index 7c2dba1..ad74fa2 100644 (file)
@@ -212,14 +212,14 @@ replaceGlobalArray(Module &M, const DataLayout &DL, GlobalVariable &Array,
   // At this point, we have committed to replacing this array.
   ReplacedGlobals.insert(&Array);
 
-  std::string NewName = Array.getName();
+  std::string NewName = Array.getName().str();
   NewName += ".toptr";
   GlobalVariable *ReplacementToArr =
       cast<GlobalVariable>(M.getOrInsertGlobal(NewName, ElemPtrTy));
   ReplacementToArr->setInitializer(ConstantPointerNull::get(ElemPtrTy));
 
   Function *PollyMallocManaged = getOrCreatePollyMallocManaged(M);
-  std::string FnName = Array.getName();
+  std::string FnName = Array.getName().str();
   FnName += ".constructor";
   PollyIRBuilder Builder(M.getContext());
   FunctionType *Ty = FunctionType::get(Builder.getVoidTy(), false);
index 7224cbe..522dc3e 100644 (file)
@@ -1402,13 +1402,14 @@ const std::map<std::string, std::string> IntrinsicToLibdeviceFunc = {
 /// so that we use intrinsics whenever possible.
 ///
 /// Return "" if we are not compiling for CUDA.
-std::string getCUDALibDeviceFuntion(StringRef Name) {
+std::string getCUDALibDeviceFuntion(StringRef NameRef) {
+  std::string Name = NameRef.str();
   auto It = IntrinsicToLibdeviceFunc.find(Name);
   if (It != IntrinsicToLibdeviceFunc.end())
     return getCUDALibDeviceFuntion(It->second);
 
   if (CUDALibDeviceFunctions.count(Name))
-    return ("__nv_" + Name).str();
+    return ("__nv_" + Name);
 
   return "";
 }
@@ -1760,7 +1761,7 @@ GPUNodeBuilder::createLaunchParameters(ppcg_kernel *Kernel, Function *F,
 void GPUNodeBuilder::setupKernelSubtreeFunctions(
     SetVector<Function *> SubtreeFunctions) {
   for (auto Fn : SubtreeFunctions) {
-    const std::string ClonedFnName = Fn->getName();
+    const std::string ClonedFnName = Fn->getName().str();
     Function *Clone = GPUModule->getFunction(ClonedFnName);
     if (!Clone)
       Clone =
@@ -2377,7 +2378,7 @@ std::string GPUNodeBuilder::createKernelASM() {
 
   PM.run(*GPUModule);
 
-  return ASMStream.str();
+  return ASMStream.str().str();
 }
 
 bool GPUNodeBuilder::requiresCUDALibDevice() {