aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorSanjay Patel <spatel@rotateright.com>2021-05-20 11:32:03 -0400
committerSanjay Patel <spatel@rotateright.com>2021-05-20 12:12:21 -0400
commitf34311c4024d07246128352241ff360173c68f87 (patch)
treebe1d61e5c9fac289613799fc1aaeffcd99b756a2 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parentee4055cf23e7c7c5e2b91aefbbf10aa23754ade9 (diff)
downloadllvm-f34311c4024d07246128352241ff360173c68f87.zip
llvm-f34311c4024d07246128352241ff360173c68f87.tar.gz
llvm-f34311c4024d07246128352241ff360173c68f87.tar.bz2
[GlobalOpt] recompute alignments for loads and stores of updated globals
GlobalOpt can slice structs/arrays and change GEPs in the process, but it was not updating alignments for load/store users. This eventually causes the crashing seen in: https://llvm.org/PR49661 https://llvm.org/PR50253 On x86, this required SLP+codegen to create an aligned vector store on an invalid address. The bugs would be easier to demonstrate on a target with stricter alignment requirements. I'm not sure if this is a complete solution. The alignment updating code is adapted from InstCombine, so I assume that part is tested and good. Differential Revision: https://reviews.llvm.org/D102552
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions