Teach computeKnownBits to use align attribute on return values and align metadata on loads. This fixes the following bug: https://llvm.org/bugs/show_bug.cgi?id=25068
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
Comment Actions
LGTM w/comments addressed and one part separated into a follow on change as noted inline.
| lib/Analysis/ValueTracking.cpp | ||
|---|---|---|
| 1412 ↗ | (On Diff #36618) | The changes to this function LGTM w/appropriate test cases. |
| 2981 ↗ | (On Diff #36618) | I'm not sure the GlobalVariable code is equivalent to the other case. I would prefer you separate the refactoring to use getAlignment into a separate patch. It seems slightly higher risk. (My concern comes from the difference between BaseAlign and Align. I haven't looked at these carefully and I'm worried that your getAlignment is computing Align not BaseAlign.) |
| test/Transforms/InstCombine/assume-redundant.ll | ||
| 52 ↗ | (On Diff #36618) | Please add versions of this test for both load w/metadata and allocas. |