aboutsummaryrefslogtreecommitdiff
path: root/clang/lib/Lex/ModuleMap.cpp
diff options
context:
space:
mode:
authorErik Eckstein <eeckstein@apple.com>2015-08-13 15:36:11 +0000
committerErik Eckstein <eeckstein@apple.com>2015-08-13 15:36:11 +0000
commit11fc8175d9abba0dbba643c0ea81400afba017dc (patch)
tree0c093b773f2a14e766c40fed0ab145d72a4b6f89 /clang/lib/Lex/ModuleMap.cpp
parentef1ac01c2ebac3dec3d4288b323576cc0d4139ae (diff)
downloadllvm-11fc8175d9abba0dbba643c0ea81400afba017dc.zip
llvm-11fc8175d9abba0dbba643c0ea81400afba017dc.tar.gz
llvm-11fc8175d9abba0dbba643c0ea81400afba017dc.tar.bz2
[DeadStoreElimination] remove a redundant store even if the load is in a different block.
DeadStoreElimination does eliminate a store if it stores a value which was loaded from the same memory location. So far this worked only if the store is in the same block as the load. Now we can also handle stores which are in a different block than the load. Example: define i32 @test(i1, i32*) { entry: %l2 = load i32, i32* %1, align 4 br i1 %0, label %bb1, label %bb2 bb1: br label %bb3 bb2: ; This store is redundant store i32 %l2, i32* %1, align 4 br label %bb3 bb3: ret i32 0 } Differential Revision: http://reviews.llvm.org/D11854 llvm-svn: 244901
Diffstat (limited to 'clang/lib/Lex/ModuleMap.cpp')
0 files changed, 0 insertions, 0 deletions