diff --git a/codon/cir/llvm/optimize.cpp b/codon/cir/llvm/optimize.cpp index 0760b071..87e89bbd 100644 --- a/codon/cir/llvm/optimize.cpp +++ b/codon/cir/llvm/optimize.cpp @@ -387,9 +387,7 @@ struct AllocInfo { auto *parent = ai->getParent(); if (isa(ai) || !loop.hasLoopInvariantOperands(ai) || ai->getMetadata("codon.alloc.hoisted") || anySubLoopContains(ai) || - inIrreducibleCycle(ai) || parent->getTerminator()->getNumSuccessors() == 0 || - (loop.isLoopExiting(parent) && - parent->getTerminator()->getNumSuccessors() == 1)) + inIrreducibleCycle(ai)) return false; // Need to track insertvalue/extractvalue to make this effective.