Unfortunately, this overflow is extremely hard to reproduce reliably (in fact, I was unable to do so). The issue is that:
- getOperandsToCreate sometimes skips creating an SCEV for the LHS
 - then, createSCEV is called for the BinaryOp
 - ... which calls getNoWrapFlagsFromUB
 - ... which under certain circumstances calls isSCEVExprNeverPoison
 - ... which under certain circumstances requires the SCEVs of all operands
 
For certain deep dependency trees, this causes a stack overflow.
Correct me if I'm wrong but we're not yet able to use C++17 features. This is causing a build bot failure: https://lab.llvm.org/buildbot#builders/77/builds/20381