diff options
| author | Philip Reames <listmail@philipreames.com> | 2021-10-05 11:15:35 -0700 |
|---|---|---|
| committer | Philip Reames <listmail@philipreames.com> | 2021-10-05 11:20:48 -0700 |
| commit | c608b49d67e0c22cc3537569f76af500097cd3b4 (patch) | |
| tree | 2561cff1c28b501ae5546c5df12c49df74bf0923 /lldb/test/Shell/ScriptInterpreter/Python/Crashlog | |
| parent | b8ffcb12e2ed52e080532586ae1ed4e6f9e47b70 (diff) | |
| download | llvm-c608b49d67e0c22cc3537569f76af500097cd3b4.zip llvm-c608b49d67e0c22cc3537569f76af500097cd3b4.tar.gz llvm-c608b49d67e0c22cc3537569f76af500097cd3b4.tar.bz2 | |
[SCEV] Tweak the algorithm for figuring out if flags must apply to a SCEV [mostly-NFC]
Behavior wise, this patch should be mostly NFC. The only behavior difference known is that on the isSCEVExprNeverPoison path we'll consider a bound imposed by the SCEVable operands (if any).
Algorithmically, it's an invert of the existing code. Previously, we checked for each operand if we could find a bound, then checked for must-execute given that bound. With the patch, we use dominance to refine the innermost bound, then check must execute once. The interesting case is when we have multiple unknowns within a single basic block. While both dominance and must-execute are worst-case linear walks within the block, only dominance is cached. As such, refining based on dominance should be more efficient.
Diffstat (limited to 'lldb/test/Shell/ScriptInterpreter/Python/Crashlog')
0 files changed, 0 insertions, 0 deletions
