diff options
| author | Denis Bakhvalov <denis.bakhvalov@intel.com> | 2019-09-05 17:00:32 +0000 |
|---|---|---|
| committer | Denis Bakhvalov <denis.bakhvalov@intel.com> | 2019-09-05 17:00:32 +0000 |
| commit | 58f172f05ae0d6d4fa6a222d04fa59fc98807489 (patch) | |
| tree | f3dcc9c1a8df2eb566c6628bb34133c84a3e5ef4 /llvm/lib/CodeGen/LexicalScopes.cpp | |
| parent | 3856512334ee525d5c922b0480b7503210cc4bb3 (diff) | |
| download | bcm5719-llvm-58f172f05ae0d6d4fa6a222d04fa59fc98807489.tar.gz bcm5719-llvm-58f172f05ae0d6d4fa6a222d04fa59fc98807489.zip | |
[MergedLoadStoreMotion] Sink stores to BB with more than 2 predecessors
If we have:
bb5:
br i1 %arg3, label %bb6, label %bb7
bb6:
%tmp = getelementptr inbounds i32, i32* %arg1, i64 2
store i32 3, i32* %tmp, align 4
br label %bb9
bb7:
%tmp8 = getelementptr inbounds i32, i32* %arg1, i64 2
store i32 3, i32* %tmp8, align 4
br label %bb9
bb9: ; preds = %bb4, %bb6, %bb7
...
We can't sink stores directly into bb9.
This patch creates new BB that is successor of %bb6 and %bb7
and sinks stores into that block.
SplitFooterBB is the parameter to the pass that controls
that behavior.
Change-Id: I7fdf50a772b84633e4b1b860e905bf7e3e29940f
Differential: https://reviews.llvm.org/D66234
llvm-svn: 371089
Diffstat (limited to 'llvm/lib/CodeGen/LexicalScopes.cpp')
0 files changed, 0 insertions, 0 deletions

