[llvm] r271043 - [Hexagon] Do not create passes in the constructor of HexagonPassConfig

Krzysztof Parzyszek via llvm-commits llvm-commits at lists.llvm.org
Fri May 27 13:48:42 PDT 2016


Author: kparzysz
Date: Fri May 27 15:48:39 2016
New Revision: 271043

URL: http://llvm.org/viewvc/llvm-project?rev=271043&view=rev
Log:
[Hexagon] Do not create passes in the constructor of HexagonPassConfig

When running mir tests, a pass created in that constructor would not be
freed, leading to memory leaks.

Modified:
    llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp

Modified: llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp?rev=271043&r1=271042&r2=271043&view=diff
==============================================================================
--- llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp (original)
+++ llvm/trunk/lib/Target/Hexagon/HexagonTargetMachine.cpp Fri May 27 15:48:39 2016
@@ -195,15 +195,7 @@ namespace {
 class HexagonPassConfig : public TargetPassConfig {
 public:
   HexagonPassConfig(HexagonTargetMachine *TM, PassManagerBase &PM)
-    : TargetPassConfig(TM, PM) {
-    bool NoOpt = (TM->getOptLevel() == CodeGenOpt::None);
-    if (!NoOpt) {
-      if (EnableExpandCondsets) {
-        Pass *Exp = createHexagonExpandCondsets();
-        insertPass(&RegisterCoalescerID, IdentifyingPassPtr(Exp));
-      }
-    }
-  }
+    : TargetPassConfig(TM, PM) {}
 
   HexagonTargetMachine &getHexagonTargetMachine() const {
     return getTM<HexagonTargetMachine>();
@@ -276,6 +268,10 @@ bool HexagonPassConfig::addInstSelector(
 
 void HexagonPassConfig::addPreRegAlloc() {
   if (getOptLevel() != CodeGenOpt::None) {
+    if (EnableExpandCondsets) {
+      Pass *Exp = createHexagonExpandCondsets();
+      insertPass(&RegisterCoalescerID, IdentifyingPassPtr(Exp));
+    }
     if (!DisableStoreWidening)
       addPass(createHexagonStoreWidening(), false);
     if (!DisableHardwareLoops)




More information about the llvm-commits mailing list