[SimplifyCFG] Allow dropping block that only contains ephemeral values
authorNikita Popov <npopov@redhat.com>
Wed, 28 Jun 2023 09:58:16 +0000 (11:58 +0200)
committerNikita Popov <npopov@redhat.com>
Fri, 30 Jun 2023 13:24:01 +0000 (15:24 +0200)
commit20f0c68fd83a0147a8ec1722bd2e848180610288
tree3c1dc40bd1d7b5224471d34e378c781ec9044842
parentf13e1a65cabbecde1ace3cc02d30a0883d797957
[SimplifyCFG] Allow dropping block that only contains ephemeral values

Perform the TryToSimplifyUncondBranchFromEmptyBlock() transform if
the block is empty except for ephemeral values. The ephemeral values
will be dropped in that case.

This makes sure that assumes don't block this transforms, as reported
in https://discourse.llvm.org/t/llvm-assume-blocks-optimization/71609.

Differential Revision: https://reviews.llvm.org/D153966
llvm/include/llvm/Transforms/Utils/Local.h
llvm/lib/Transforms/Utils/Local.cpp
llvm/lib/Transforms/Utils/SimplifyCFG.cpp
llvm/test/CodeGen/Thumb2/pr52817.ll
llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll
llvm/test/Transforms/SimplifyCFG/X86/critedge-assume.ll
llvm/test/Transforms/SimplifyCFG/assume.ll
llvm/test/Transforms/SimplifyCFG/gepcost.ll
llvm/test/Transforms/SimplifyCFG/hoist-common-skip.ll