From 881903ec790ea8e08ea6e493c4218582c1e9e5be Mon Sep 17 00:00:00 2001
From: Prakalp Srivastava <psrivas2@illinois.edu>
Date: Thu, 6 Nov 2014 04:59:29 +0000
Subject: [PATCH] Added support to preserve DFG info across NVPTX and X86
 backend passes

---
 llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp | 6 +++---
 llvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp     | 1 +
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp b/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
index 8d37637fdc..fda7a18f1c 100644
--- a/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
+++ b/llvm/lib/Transforms/DFG2LLVM_NVPTX/DFG2LLVM_NVPTX.cpp
@@ -57,6 +57,7 @@ namespace {
 
     void getAnalysisUsage(AnalysisUsage &AU) const {
       AU.addRequired<BuildDFG>();
+      AU.addPreserved<BuildDFG>();
     }
 
 
@@ -648,7 +649,6 @@ namespace {
     // function and add it to the DFNode GenFunc.
     Function *F_nvptx = N->getGenFunc();
     if(F_nvptx == NULL) {
-      errs() << "GenFunc is NULL\n";
       // Clone the function
       ValueToValueMapTy VMap;
       F_nvptx = CloneFunction(F, VMap, true);
@@ -661,8 +661,8 @@ namespace {
 
       //Add generated function info to DFNode
       N->setGenFunc(F_nvptx, DFNode::PTX);
-    } {
-      errs() << "GenFunc is not NULL\n" << *F_nvptx;
+    } else {
+      errs() << "WARNING: Visiting a node for which code already generated!\n";
     }
 
     transformFunctionToVoid(F_nvptx);
diff --git a/llvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp b/llvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp
index 2659e9e444..32ffaa1341 100644
--- a/llvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp
+++ b/llvm/lib/Transforms/DFG2LLVM_X86/DFG2LLVM_X86.cpp
@@ -43,6 +43,7 @@ public:
 
   void getAnalysisUsage(AnalysisUsage &AU) const {
     AU.addRequired<BuildDFG>();
+    AU.addPreserved<BuildDFG>();
   }
 
 
-- 
GitLab