diff --git a/llvm/lib/Analysis/InstructionSimplify.cpp b/llvm/lib/Analysis/InstructionSimplify.cpp --- a/llvm/lib/Analysis/InstructionSimplify.cpp +++ b/llvm/lib/Analysis/InstructionSimplify.cpp @@ -567,6 +567,9 @@ if (!MaxRecurse--) return nullptr; + // Prevent this function from being recursively called more than once. + MaxRecurse = 0; + // Make sure the phi is on the LHS. if (!isa(LHS)) { std::swap(LHS, RHS);