summaryrefslogtreecommitdiffstats
path: root/clang/lib/Frontend/CompilerInvocation.cpp
diff options
context:
space:
mode:
authorDavide Italiano <davide@freebsd.org>2018-01-08 16:34:06 +0000
committerDavide Italiano <davide@freebsd.org>2018-01-08 16:34:06 +0000
commit9a60d2c15799ee1ee33f67f3e7ffa189aa928342 (patch)
tree5979c00306a5b3e22654471a0f470b32b3b6e00c /clang/lib/Frontend/CompilerInvocation.cpp
parentcf6e6c82c1ca243c3be191c59409d26f76ec8d38 (diff)
downloadbcm5719-llvm-9a60d2c15799ee1ee33f67f3e7ffa189aa928342.tar.gz
bcm5719-llvm-9a60d2c15799ee1ee33f67f3e7ffa189aa928342.zip
[CVP] Replace incoming values from unreachable blocks with undef.
This is an attempt of fixing PR35807. Due to the non-standard definition of dominance in LLVM, where uses in unreachable blocks are dominated by anything, you can have, in an unreachable block: %patatino = OP1 %patatino, CONSTANT When `SimplifyInstruction` receives a PHI where an incoming value is of the aforementioned form, in some cases, loops indefinitely. What I propose here instead is keeping track of the incoming values from unreachable blocks, and replacing them with undef. It fixes this case, and it seems to be good regardless (even if we can't prove that the value is constant, as it's coming from an unreachable block, we can ignore it). Differential Revision: https://reviews.llvm.org/D41812 llvm-svn: 322006
Diffstat (limited to 'clang/lib/Frontend/CompilerInvocation.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud