HomePhabricator

[LazyValueInfo] PR33357 prevent infinite recursion on BinaryOperator

Description

[LazyValueInfo] PR33357 prevent infinite recursion on BinaryOperator

Summary:
It is possible for LVI to encounter instructions that are not in valid
SSA form and reference themselves. One example is the following:

%tmp4 = and i1 %tmp4, undef

Before this patch LVI would recurse until running out of stack memory
and crashed. This patch marks these self-referential instructions as
Overdefined and aborts analysis on the instruction.

Fixes https://bugs.llvm.org/show_bug.cgi?id=33357

Reviewers: craig.topper, anna, efriedma, dberlin, sebpop, kuhar

Reviewed by: dberlin

Subscribers: uabelho, spatel, a.elovikov, fhahn, eli.friedman, mzolotukhin, spop, evandro, davide, llvm-commits

Differential Revision: https://reviews.llvm.org/D34135

Details

Committed
brzyckiMar 13 2018, 11:14 AM
Reviewer
dberlin
Differential Revision
D34135: [JumpThreading] Use DT to avoid processing dead blocks
Parents
rL327431: Implement pure virtual method to fix build.
Branches
Unknown
Tags
Unknown