[MergeICmps] Simplify the code.
authorClement Courbet <courbet@google.com>
Wed, 15 May 2019 13:04:24 +0000 (13:04 +0000)
committerClement Courbet <courbet@google.com>
Wed, 15 May 2019 13:04:24 +0000 (13:04 +0000)
commit157ae639fa646c59ad6cb2c39a389264d5cb3e6a
treeeafdbe550805630438d465ac1efe35dc8791f385
parent2dd6a0c0c3841af24a6bb7e5025b26df92759c4a
[MergeICmps] Simplify the code.

Instead of patching the original blocks, we now generate new blocks and
delete the old blocks. This results in simpler code with a less twisted
control flow (see the change in `entry-block-shuffled.ll`).

This will make https://reviews.llvm.org/D60318 simpler by making it more
obvious where control flow created and deleted.

Reviewers: gchatelet

Subscribers: hiraditya, llvm-commits, spatel

Tags: #llvm

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

llvm-svn: 360771
llvm/lib/Transforms/Scalar/MergeICmps.cpp
llvm/test/CodeGen/PowerPC/memcmp-mergeexpand.ll
llvm/test/CodeGen/X86/memcmp-mergeexpand.ll
llvm/test/Transforms/MergeICmps/X86/alias-merge-blocks.ll
llvm/test/Transforms/MergeICmps/X86/entry-block-shuffled.ll
llvm/test/Transforms/MergeICmps/X86/multiple-blocks-does-work.ll
llvm/test/Transforms/MergeICmps/X86/pair-int32-int32.ll
llvm/test/Transforms/MergeICmps/X86/split-block-does-work.ll