From 251ee1704c6d2d8a3a8a9ffb198de28a5fbb5a34 Mon Sep 17 00:00:00 2001
From: Adel Ejjeh <aejjeh@illinois.edu>
Date: Tue, 19 Apr 2022 09:46:36 -0500
Subject: [PATCH] [hpvmdse] more bug fixes

---
 hpvm/tools/hpvm-dse/hpvm-dse.cpp | 17 +++++------------
 1 file changed, 5 insertions(+), 12 deletions(-)

diff --git a/hpvm/tools/hpvm-dse/hpvm-dse.cpp b/hpvm/tools/hpvm-dse/hpvm-dse.cpp
index 0e3d37afa2..9b2a403670 100644
--- a/hpvm/tools/hpvm-dse/hpvm-dse.cpp
+++ b/hpvm/tools/hpvm-dse/hpvm-dse.cpp
@@ -903,24 +903,17 @@ void OptimizeLeaf(ParamMaps &PM, DFLeafNode *NewLeaf, ValueToValueMapTy &VMap,
   // Next, do Dim loops unrolling
   doUnrollDim(PM, NewLeaf, os);
 
+  // Invalidate FunctionAnalysisManager after unrolling
+  FAM.invalidate(*F,PreservedAnalyses::none());
+
   TripCountMap[F] = getFuncLoopTripCounts(F, 1);
   removeNZLoop(F);
   // Normalize after unrolling
-  FunctionAnalysisManager FAM3;
-  LoopAnalysisManager LAM3;
-  ModuleAnalysisManager MAM3;
-  CGSCCAnalysisManager CAM3;
-  PassBuilder PB3;
-  PB3.registerFunctionAnalyses(FAM3);
-  PB3.registerLoopAnalyses(LAM3);
-  PB3.registerModuleAnalyses(MAM3);
-  PB3.registerCGSCCAnalyses(CAM3);
-  PB3.crossRegisterProxies(LAM3, FAM3, CAM3, MAM3);
   FunctionPassManager FPM3;
   // FPM3.addPass(SimplifyCFGPass());
   // FPM3.addPass(EarlyCSEPass(false));
   FPM3.addPass(InstCombinePass());
-  FPM3.run(*F, FAM3);
+  FPM3.run(*F, FAM);
   end = std::chrono::steady_clock::now();
   duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
   os << "\t\tDuration: " << duration.count() << " ms" << std::endl;
@@ -981,7 +974,7 @@ void OptimizeLeaf(ParamMaps &PM, DFLeafNode *NewLeaf, ValueToValueMapTy &VMap,
   start = std::chrono::steady_clock::now();
   FunctionPassManager FPM4;
   FPM4.addPass(SimplifyCFGPass());
-  FPM4.run(*F, FAM3);
+  FPM4.run(*F, FAM);
   end = std::chrono::steady_clock::now();
   duration = std::chrono::duration_cast<std::chrono::milliseconds>(end - start);
   os << "\t\tDuration: " << duration.count() << " ms" << std::endl;
-- 
GitLab