Closed llvmbot closed 13 years ago
constmerge will optimize
%struct.foobar = type { i32 } @bar.d = constant %struct.foobar zeroinitializer, align 4 @foo.d = internal constant %struct.foobar zeroinitializer, align 4 define i32 @main() nounwind ssp { entry: %call2 = tail call i32 @zed(%struct.foobar @foo.d, %struct.foobar @bar.d) nounwind ret i32 0 }
but swapping the positions of bar.d and foo.d causes it to miss the opportunity.
Fixed in http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20110110/115247.html
assigned to @nlewycky
Extended Description
constmerge will optimize
%struct.foobar = type { i32 } @bar.d = constant %struct.foobar zeroinitializer, align 4 @foo.d = internal constant %struct.foobar zeroinitializer, align 4 define i32 @main() nounwind ssp { entry: %call2 = tail call i32 @zed(%struct.foobar @foo.d, %struct.foobar @bar.d) nounwind ret i32 0 }
but swapping the positions of bar.d and foo.d causes it to miss the opportunity.