Index: include/llvm/Transforms/Scalar/ConstantHoisting.h =================================================================== --- include/llvm/Transforms/Scalar/ConstantHoisting.h +++ include/llvm/Transforms/Scalar/ConstantHoisting.h @@ -126,18 +126,6 @@ bool runImpl(Function &F, TargetTransformInfo &TTI, DominatorTree &DT, BlockFrequencyInfo *BFI, BasicBlock &Entry); - void releaseMemory() { - ClonedCastMap.clear(); - ConstIntCandVec.clear(); - for (auto MapEntry : ConstGEPCandMap) - MapEntry.second.clear(); - ConstGEPCandMap.clear(); - ConstIntInfoVec.clear(); - for (auto MapEntry : ConstGEPInfoMap) - MapEntry.second.clear(); - ConstGEPInfoMap.clear(); - } - private: using ConstPtrUnionType = PointerUnion; using ConstCandMapType = DenseMap; Index: lib/Transforms/Scalar/ConstantHoisting.cpp =================================================================== --- lib/Transforms/Scalar/ConstantHoisting.cpp +++ lib/Transforms/Scalar/ConstantHoisting.cpp @@ -114,8 +114,6 @@ AU.addRequired(); } - void releaseMemory() override { Impl.releaseMemory(); } - private: ConstantHoistingPass Impl; }; @@ -947,6 +945,16 @@ // Cleanup dead instructions. deleteDeadCastInst(); + ClonedCastMap.clear(); + ConstIntCandVec.clear(); + for (auto MapEntry : ConstGEPCandMap) + MapEntry.second.clear(); + ConstGEPCandMap.clear(); + ConstIntInfoVec.clear(); + for (auto MapEntry : ConstGEPInfoMap) + MapEntry.second.clear(); + ConstGEPInfoMap.clear(); + return MadeChange; } Index: test/Transforms/ConstantHoisting/X86/phi.ll =================================================================== --- test/Transforms/ConstantHoisting/X86/phi.ll +++ test/Transforms/ConstantHoisting/X86/phi.ll @@ -1,4 +1,5 @@ ; RUN: opt -S -consthoist < %s | FileCheck %s +; RUN: opt -S -passes=consthoist < %s | FileCheck %s target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" target triple = "x86_64-apple-macosx10.9.0"