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. |