diff options
author | Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> | 2019-09-20 12:13:12 +0000 |
---|---|---|
committer | Bjorn Pettersson <bjorn.a.pettersson@ericsson.com> | 2019-09-20 12:13:12 +0000 |
commit | 169cb63478aa047451786d8ccf6af4b721e3b271 (patch) | |
tree | 58dcd49bf98ed04aeabb859bdbccaecb25afb6b6 /llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp | |
parent | 03475adcf720cdecf50cae7ef17c9b70883115df (diff) | |
download | bcm5719-llvm-169cb63478aa047451786d8ccf6af4b721e3b271.tar.gz bcm5719-llvm-169cb63478aa047451786d8ccf6af4b721e3b271.zip |
[AMDGPU] Use std::make_tuple to make some toolchains happy again
My toolchain stopped working (LLVM 8.0 , libstdc++ 5.4.0) after
r372338.
The same problem was seen in clang-cuda-build buildbots:
clang-cuda-build/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp:763:12:
error: chosen constructor is explicit in copy-initialization
return {Reg, 0, nullptr};
^~~~~~~~~~~~~~~~~
/usr/bin/../lib/gcc/x86_64-linux-gnu/5.4.0/../../../../include/c++/5.4.0/tuple:479:19:
note: explicit constructor declared here
constexpr tuple(_UElements&&... __elements)
^
This commit adds explicit calls to std::make_tuple to work around
the problem.
llvm-svn: 372384
Diffstat (limited to 'llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp')
-rw-r--r-- | llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp b/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp index 73486b969f4..103ca2a7e99 100644 --- a/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp @@ -760,7 +760,7 @@ static std::tuple<Register, unsigned, MachineInstr *> getBaseWithConstantOffset(MachineRegisterInfo &MRI, Register Reg) { MachineInstr *Def = getDefIgnoringCopies(Reg, MRI); if (!Def) - return {Reg, 0, nullptr}; + return std::make_tuple(Reg, 0, nullptr); if (Def->getOpcode() == AMDGPU::G_CONSTANT) { unsigned Offset; @@ -770,21 +770,21 @@ getBaseWithConstantOffset(MachineRegisterInfo &MRI, Register Reg) { else Offset = Op.getCImm()->getZExtValue(); - return {Register(), Offset, Def}; + return std::make_tuple(Register(), Offset, Def); } int64_t Offset; if (Def->getOpcode() == AMDGPU::G_ADD) { // TODO: Handle G_OR used for add case if (mi_match(Def->getOperand(1).getReg(), MRI, m_ICst(Offset))) - return {Def->getOperand(0).getReg(), Offset, Def}; + return std::make_tuple(Def->getOperand(0).getReg(), Offset, Def); // FIXME: matcher should ignore copies if (mi_match(Def->getOperand(1).getReg(), MRI, m_Copy(m_ICst(Offset)))) - return {Def->getOperand(0).getReg(), Offset, Def}; + return std::make_tuple(Def->getOperand(0).getReg(), Offset, Def); } - return {Reg, 0, Def}; + return std::make_tuple(Reg, 0, Def); } static unsigned getBufferStoreOpcode(LLT Ty, @@ -931,7 +931,7 @@ AMDGPUInstructionSelector::splitBufferOffsets(MachineIRBuilder &B, B.setInsertPt(OldMBB, OldInsPt); } - return {BaseReg, ImmOffset, TotalConstOffset}; + return std::make_tuple(BaseReg, ImmOffset, TotalConstOffset); } bool AMDGPUInstructionSelector::selectStoreIntrinsic(MachineInstr &MI, |