diff options
author | Benjamin Kramer <benny.kra@googlemail.com> | 2016-07-30 11:31:16 +0000 |
---|---|---|
committer | Benjamin Kramer <benny.kra@googlemail.com> | 2016-07-30 11:31:16 +0000 |
commit | 22ff865a83046370b24678da2d3342dedd39cffb (patch) | |
tree | 4bedb218743d09e9d2630dffd5d35a881ac8b2e2 /llvm/lib/Target/AMDGPU/R600InstrInfo.cpp | |
parent | 0c09a3af00c62f27588be346e6b724028bee2529 (diff) | |
download | bcm5719-llvm-22ff865a83046370b24678da2d3342dedd39cffb.tar.gz bcm5719-llvm-22ff865a83046370b24678da2d3342dedd39cffb.zip |
[AMDGPU] Fix lifetime of SmallVector temporaries.
Found by asan -fsanitize-address-use-after-scope.
llvm-svn: 277265
Diffstat (limited to 'llvm/lib/Target/AMDGPU/R600InstrInfo.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/R600InstrInfo.cpp | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp b/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp index 159c17d986d..08b95a5be64 100644 --- a/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp +++ b/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp @@ -320,12 +320,12 @@ R600InstrInfo::ExtractSrcs(MachineInstr &MI, const DenseMap<unsigned, unsigned> &PV, unsigned &ConstCount) const { ConstCount = 0; - ArrayRef<std::pair<MachineOperand *, int64_t>> Srcs = getSrcs(MI); const std::pair<int, unsigned> DummyPair(-1, 0); std::vector<std::pair<int, unsigned> > Result; unsigned i = 0; - for (unsigned n = Srcs.size(); i < n; ++i) { - unsigned Reg = Srcs[i].first->getReg(); + for (const auto &Src : getSrcs(MI)) { + ++i; + unsigned Reg = Src.first->getReg(); int Index = RI.getEncodingValue(Reg) & 0xff; if (Reg == AMDGPU::OQAP) { Result.push_back(std::make_pair(Index, 0U)); @@ -592,9 +592,7 @@ R600InstrInfo::fitsConstReadLimitations(const std::vector<MachineInstr *> &MIs) if (!isALUInstr(MI.getOpcode())) continue; - ArrayRef<std::pair<MachineOperand *, int64_t>> Srcs = getSrcs(MI); - - for (const auto &Src:Srcs) { + for (const auto &Src : getSrcs(MI)) { if (Src.first->getReg() == AMDGPU::ALU_LITERAL_X) Literals.insert(Src.second); if (Literals.size() > 4) |