summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp
diff options
context:
space:
mode:
authorBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2017-03-02 15:18:58 +0000
committerBjorn Pettersson <bjorn.a.pettersson@ericsson.com>2017-03-02 15:18:58 +0000
commite5027cfbccb1183901595bd743840df17175245d (patch)
treefb806b884e97ccaea3cbd6b0c16be2e2002b191b /lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp
parentaee9771ae2f2396a3b63947d78191637d91d5527 (diff)
downloadbcm5719-llvm-e5027cfbccb1183901595bd743840df17175245d.tar.gz
bcm5719-llvm-e5027cfbccb1183901595bd743840df17175245d.zip
[InstCombine] Avoid faulty combines of select-cmp-br
Summary: When InstCombine is optimizing certain select-cmp-br patterns it replaces the result of the select in uses outside of the basic block containing the select. This is only legal if the path from the select to the outside use is disjoint from all other paths out from the originating basic block. The problem found was that InstCombiner::replacedSelectWithOperand did not consider the case when both edges out from the br pointed to the same label. In that case the paths aren't disjoint and the transformation is illegal. This patch avoids the faulty rewrites by verifying that there is a single flow to the successor where we want to replace uses. Reviewers: llvm-commits, spatel, majnemer Differential Revision: https://reviews.llvm.org/D30455 llvm-svn: 296752
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud