OSDN Git Service

Recommit r325001: [CallSiteSplitting] Support splitting of blocks with instrs before...
authorFlorian Hahn <florian.hahn@arm.com>
Wed, 14 Feb 2018 13:59:12 +0000 (13:59 +0000)
committerFlorian Hahn <florian.hahn@arm.com>
Wed, 14 Feb 2018 13:59:12 +0000 (13:59 +0000)
commit283bc8f7bda0c5886ee817a8a08826c68f017e01
tree884ac9b383dba431fa0427a89ebe5ef6008ba6d3
parent2f7051e39f367bd16dcac79254c95b6b914c3cb9
Recommit r325001: [CallSiteSplitting] Support splitting of blocks with instrs before call.

For basic blocks with instructions between the beginning of the block
and a call we have to duplicate the instructions before the call in all
split blocks and add PHI nodes for uses of the duplicated instructions
after the call.

Currently, the threshold for the number of instructions before a call
is quite low, to keep the impact on binary size low.

Reviewers: junbuml, mcrosier, davidxl, davide

Reviewed By: junbuml

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325126 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/CallSiteSplitting.cpp
test/Other/new-pm-lto-defaults.ll
test/Transforms/CallSiteSplitting/callsite-instructions-before-call.ll [new file with mode: 0644]
test/Transforms/CallSiteSplitting/callsite-no-or-structure.ll
test/Transforms/CallSiteSplitting/callsite-split-debug.ll
test/Transforms/CallSiteSplitting/callsite-split-or-phi.ll
test/Transforms/CallSiteSplitting/callsite-split.ll