aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
diff options
context:
space:
mode:
authorJohannes Reifferscheid <jreiffers@google.com>2022-08-03 07:07:55 +0200
committerJohannes Reifferscheid <jreiffers@google.com>2022-08-03 11:08:01 +0200
commit7ae5d00afaf39fae78e411cb44f665e1dc52b356 (patch)
tree02f9035e1d0b79e312df9171f7348993c48a5809 /llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp
parentf4b9c0735e339b177d98fe69cf210eea00c0af62 (diff)
downloadllvm-7ae5d00afaf39fae78e411cb44f665e1dc52b356.zip
llvm-7ae5d00afaf39fae78e411cb44f665e1dc52b356.tar.gz
llvm-7ae5d00afaf39fae78e411cb44f665e1dc52b356.tar.bz2
Fix a stack overflow in ScalarEvolution.
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. Reviewed By: bkramer, fhahn Differential Revision: https://reviews.llvm.org/D129745
Diffstat (limited to 'llvm/lib/ExecutionEngine/Interpreter/ExternalFunctions.cpp')
0 files changed, 0 insertions, 0 deletions