[all-commits] [llvm/llvm-project] ee4055: [GlobalOpt] adjust test to show load problems; NFC

RotateRight via All-commits all-commits at lists.llvm.org
Thu May 20 09:12:51 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ee4055cf23e7c7c5e2b91aefbbf10aa23754ade9
      https://github.com/llvm/llvm-project/commit/ee4055cf23e7c7c5e2b91aefbbf10aa23754ade9
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-05-20 (Thu, 20 May 2021)

  Changed paths:
    M llvm/test/Transforms/GlobalOpt/globalsra-align.ll

  Log Message:
  -----------
  [GlobalOpt] adjust test to show load problems; NFC

Goes with D102552


  Commit: f34311c4024d07246128352241ff360173c68f87
      https://github.com/llvm/llvm-project/commit/f34311c4024d07246128352241ff360173c68f87
  Author: Sanjay Patel <spatel at rotateright.com>
  Date:   2021-05-20 (Thu, 20 May 2021)

  Changed paths:
    M llvm/lib/Transforms/IPO/GlobalOpt.cpp
    M llvm/test/Transforms/GlobalOpt/externally-initialized-global-ctr.ll
    M llvm/test/Transforms/GlobalOpt/globalsra-align.ll

  Log Message:
  -----------
  [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


Compare: https://github.com/llvm/llvm-project/compare/8ebaa195015d...f34311c4024d


More information about the All-commits mailing list