[DebugInfo][GlobalOpt] Fix -debugify for globalopt shrinking globals to booleans.
authorJordan Rupprecht <rupprecht@google.com>
Tue, 23 Oct 2018 16:35:51 +0000 (16:35 +0000)
committerJordan Rupprecht <rupprecht@google.com>
Tue, 23 Oct 2018 16:35:51 +0000 (16:35 +0000)
commit2fed6ac186b505a68a30e9e3851b942e74687d6e
tree72e591fa442312b8d83483faef08b6c44499e48b
parentf1d8b7c49e29e0983c241862a4a78c3657620c36
[DebugInfo][GlobalOpt] Fix -debugify for globalopt shrinking globals to booleans.

Summary:
TryToShrinkGlobalToBoolean, when possible, will split store <value> + load <value> into store <bool> + select <bool ? value : 0>. This preserves DebugLoc during that pass.

Fixes PR37959. The test case here is the simplified .ll for:

```
static int foo;
int bar() {
  foo = 5;
  return foo;
}
```

Reviewers: dblaikie, gbedwell, aprantl

Reviewed By: dblaikie

Subscribers: mehdi_amini, JDevlieghere, dexonsmith, llvm-commits

Tags: #debug-info

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

llvm-svn: 345046
llvm/lib/Transforms/IPO/GlobalOpt.cpp
llvm/test/Transforms/GlobalOpt/shrink-global-to-bool-check-debug.ll [new file with mode: 0644]