HomePhabricator

Add support for cross block dse. This patch enables dead stroe elimination…

Authored by karthikthecool on Aug 13 2015, 9:17 PM.

Description

Add support for cross block dse. This patch enables dead stroe elimination across basicblocks.

Example:
define void @test_02(i32 %N) {

%1 = alloca i32
store i32 %N, i32* %1
store i32 10, i32* @x
%2 = load i32, i32* %1
%3 = icmp ne i32 %2, 0
br i1 %3, label %4, label %5

; <label>:4

store i32 5, i32* @x
br label %7

; <label>:5

%6 = load i32, i32* @x
store i32 %6, i32* @y
br label %7

; <label>:7

store i32 15, i32* @x
ret void

}
In the above example dead store "store i32 5, i32* @x" is now eliminated.

Differential Revision: http://reviews.llvm.org/D11143

llvm-svn: 245025

Details