Skip to content
Permalink
Browse files

AMDGPU/SILoadStoreOptimizer: fix a likely bug introduced recently

Summary:
We should check for same instruction class before checking whether they
have the same base address, else we might iterate out of bounds of a
MachineInstr operands list. The InstClass check is also cheaper.

This was introduced in SVN r373630.

Reviewers: tstellar

Subscribers: arsenm, kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D68690
  • Loading branch information
nhaehnle committed Oct 9, 2019
1 parent cf6cf0c commit d8f7c68e28bd0b8eb49f752bd7d26aa767c0b078
Showing with 2 additions and 2 deletions.
  1. +2 −2 llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
@@ -1665,8 +1665,8 @@ bool SILoadStoreOptimizer::promoteConstantOffsetToImm(
void SILoadStoreOptimizer::addInstToMergeableList(const CombineInfo &CI,
std::list<std::list<CombineInfo> > &MergeableInsts) const {
for (std::list<CombineInfo> &AddrList : MergeableInsts) {
if (AddrList.front().hasSameBaseAddress(*CI.I) &&
AddrList.front().InstClass == CI.InstClass) {
if (AddrList.front().InstClass == CI.InstClass &&
AddrList.front().hasSameBaseAddress(*CI.I)) {
AddrList.emplace_back(CI);
return;
}

0 comments on commit d8f7c68

Please sign in to comment.
You can’t perform that action at this time.