@@ -233,10 +233,11 @@ class SILoadStoreOptimizer {
233233
234234 void copyToDestRegs (CombineInfo &CI, CombineInfo &Paired,
235235 MachineBasicBlock::iterator InsertBefore,
236- AMDGPU::OpName OpName, Register DestReg) const ;
236+ const DebugLoc &DL, AMDGPU::OpName OpName,
237+ Register DestReg) const ;
237238 Register copyFromSrcRegs (CombineInfo &CI, CombineInfo &Paired,
238239 MachineBasicBlock::iterator InsertBefore,
239- AMDGPU::OpName OpName) const ;
240+ const DebugLoc &DL, AMDGPU::OpName OpName) const ;
240241
241242 unsigned read2Opcode (unsigned EltSize) const ;
242243 unsigned read2ST64Opcode (unsigned EltSize) const ;
@@ -1367,10 +1368,9 @@ SILoadStoreOptimizer::checkAndPrepareMerge(CombineInfo &CI,
13671368// Paired.
13681369void SILoadStoreOptimizer::copyToDestRegs (
13691370 CombineInfo &CI, CombineInfo &Paired,
1370- MachineBasicBlock::iterator InsertBefore, AMDGPU::OpName OpName ,
1371- Register DestReg) const {
1371+ MachineBasicBlock::iterator InsertBefore, const DebugLoc &DL ,
1372+ AMDGPU::OpName OpName, Register DestReg) const {
13721373 MachineBasicBlock *MBB = CI.I ->getParent ();
1373- DebugLoc DL = CI.I ->getDebugLoc ();
13741374
13751375 auto [SubRegIdx0, SubRegIdx1] = getSubRegIdxs (CI, Paired);
13761376
@@ -1398,9 +1398,9 @@ void SILoadStoreOptimizer::copyToDestRegs(
13981398Register
13991399SILoadStoreOptimizer::copyFromSrcRegs (CombineInfo &CI, CombineInfo &Paired,
14001400 MachineBasicBlock::iterator InsertBefore,
1401+ const DebugLoc &DL,
14011402 AMDGPU::OpName OpName) const {
14021403 MachineBasicBlock *MBB = CI.I ->getParent ();
1403- DebugLoc DL = CI.I ->getDebugLoc ();
14041404
14051405 auto [SubRegIdx0, SubRegIdx1] = getSubRegIdxs (CI, Paired);
14061406
@@ -1456,7 +1456,8 @@ SILoadStoreOptimizer::mergeRead2Pair(CombineInfo &CI, CombineInfo &Paired,
14561456 const TargetRegisterClass *SuperRC = getTargetRegisterClass (CI, Paired);
14571457 Register DestReg = MRI->createVirtualRegister (SuperRC);
14581458
1459- DebugLoc DL = CI.I ->getDebugLoc ();
1459+ DebugLoc DL =
1460+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
14601461
14611462 Register BaseReg = AddrReg->getReg ();
14621463 unsigned BaseSubReg = AddrReg->getSubReg ();
@@ -1484,7 +1485,7 @@ SILoadStoreOptimizer::mergeRead2Pair(CombineInfo &CI, CombineInfo &Paired,
14841485 .addImm (0 ) // gds
14851486 .cloneMergedMemRefs ({&*CI.I , &*Paired.I });
14861487
1487- copyToDestRegs (CI, Paired, InsertBefore, AMDGPU::OpName::vdst, DestReg);
1488+ copyToDestRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::vdst, DestReg);
14881489
14891490 CI.I ->eraseFromParent ();
14901491 Paired.I ->eraseFromParent ();
@@ -1541,7 +1542,8 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeWrite2Pair(
15411542 (NewOffset0 != NewOffset1) && " Computed offset doesn't fit" );
15421543
15431544 const MCInstrDesc &Write2Desc = TII->get (Opc);
1544- DebugLoc DL = CI.I ->getDebugLoc ();
1545+ DebugLoc DL =
1546+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
15451547
15461548 Register BaseReg = AddrReg->getReg ();
15471549 unsigned BaseSubReg = AddrReg->getSubReg ();
@@ -1582,7 +1584,9 @@ MachineBasicBlock::iterator
15821584SILoadStoreOptimizer::mergeImagePair (CombineInfo &CI, CombineInfo &Paired,
15831585 MachineBasicBlock::iterator InsertBefore) {
15841586 MachineBasicBlock *MBB = CI.I ->getParent ();
1585- DebugLoc DL = CI.I ->getDebugLoc ();
1587+ DebugLoc DL =
1588+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
1589+
15861590 const unsigned Opcode = getNewOpcode (CI, Paired);
15871591
15881592 const TargetRegisterClass *SuperRC = getTargetRegisterClass (CI, Paired);
@@ -1607,7 +1611,7 @@ SILoadStoreOptimizer::mergeImagePair(CombineInfo &CI, CombineInfo &Paired,
16071611
16081612 MachineInstr *New = MIB.addMemOperand (combineKnownAdjacentMMOs (CI, Paired));
16091613
1610- copyToDestRegs (CI, Paired, InsertBefore, AMDGPU::OpName::vdata, DestReg);
1614+ copyToDestRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::vdata, DestReg);
16111615
16121616 CI.I ->eraseFromParent ();
16131617 Paired.I ->eraseFromParent ();
@@ -1618,7 +1622,9 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeSMemLoadImmPair(
16181622 CombineInfo &CI, CombineInfo &Paired,
16191623 MachineBasicBlock::iterator InsertBefore) {
16201624 MachineBasicBlock *MBB = CI.I ->getParent ();
1621- DebugLoc DL = CI.I ->getDebugLoc ();
1625+ DebugLoc DL =
1626+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
1627+
16221628 const unsigned Opcode = getNewOpcode (CI, Paired);
16231629
16241630 const TargetRegisterClass *SuperRC = getTargetRegisterClass (CI, Paired);
@@ -1639,7 +1645,7 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeSMemLoadImmPair(
16391645 New.addImm (MergedOffset);
16401646 New.addImm (CI.CPol ).addMemOperand (combineKnownAdjacentMMOs (CI, Paired));
16411647
1642- copyToDestRegs (CI, Paired, InsertBefore, AMDGPU::OpName::sdst, DestReg);
1648+ copyToDestRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::sdst, DestReg);
16431649
16441650 CI.I ->eraseFromParent ();
16451651 Paired.I ->eraseFromParent ();
@@ -1650,7 +1656,9 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeBufferLoadPair(
16501656 CombineInfo &CI, CombineInfo &Paired,
16511657 MachineBasicBlock::iterator InsertBefore) {
16521658 MachineBasicBlock *MBB = CI.I ->getParent ();
1653- DebugLoc DL = CI.I ->getDebugLoc ();
1659+
1660+ DebugLoc DL =
1661+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
16541662
16551663 const unsigned Opcode = getNewOpcode (CI, Paired);
16561664
@@ -1680,7 +1688,7 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeBufferLoadPair(
16801688 .addImm (0 ) // swz
16811689 .addMemOperand (combineKnownAdjacentMMOs (CI, Paired));
16821690
1683- copyToDestRegs (CI, Paired, InsertBefore, AMDGPU::OpName::vdata, DestReg);
1691+ copyToDestRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::vdata, DestReg);
16841692
16851693 CI.I ->eraseFromParent ();
16861694 Paired.I ->eraseFromParent ();
@@ -1691,7 +1699,9 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeTBufferLoadPair(
16911699 CombineInfo &CI, CombineInfo &Paired,
16921700 MachineBasicBlock::iterator InsertBefore) {
16931701 MachineBasicBlock *MBB = CI.I ->getParent ();
1694- DebugLoc DL = CI.I ->getDebugLoc ();
1702+
1703+ DebugLoc DL =
1704+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
16951705
16961706 const unsigned Opcode = getNewOpcode (CI, Paired);
16971707
@@ -1731,7 +1741,7 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeTBufferLoadPair(
17311741 .addImm (0 ) // swz
17321742 .addMemOperand (combineKnownAdjacentMMOs (CI, Paired));
17331743
1734- copyToDestRegs (CI, Paired, InsertBefore, AMDGPU::OpName::vdata, DestReg);
1744+ copyToDestRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::vdata, DestReg);
17351745
17361746 CI.I ->eraseFromParent ();
17371747 Paired.I ->eraseFromParent ();
@@ -1742,12 +1752,13 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeTBufferStorePair(
17421752 CombineInfo &CI, CombineInfo &Paired,
17431753 MachineBasicBlock::iterator InsertBefore) {
17441754 MachineBasicBlock *MBB = CI.I ->getParent ();
1745- DebugLoc DL = CI.I ->getDebugLoc ();
1755+ DebugLoc DL =
1756+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
17461757
17471758 const unsigned Opcode = getNewOpcode (CI, Paired);
17481759
17491760 Register SrcReg =
1750- copyFromSrcRegs (CI, Paired, InsertBefore, AMDGPU::OpName::vdata);
1761+ copyFromSrcRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::vdata);
17511762
17521763 auto MIB = BuildMI (*MBB, InsertBefore, DL, TII->get (Opcode))
17531764 .addReg (SrcReg, RegState::Kill);
@@ -1789,7 +1800,9 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeFlatLoadPair(
17891800 CombineInfo &CI, CombineInfo &Paired,
17901801 MachineBasicBlock::iterator InsertBefore) {
17911802 MachineBasicBlock *MBB = CI.I ->getParent ();
1792- DebugLoc DL = CI.I ->getDebugLoc ();
1803+
1804+ DebugLoc DL =
1805+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
17931806
17941807 const unsigned Opcode = getNewOpcode (CI, Paired);
17951808
@@ -1807,7 +1820,7 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeFlatLoadPair(
18071820 .addImm (CI.CPol )
18081821 .addMemOperand (combineKnownAdjacentMMOs (CI, Paired));
18091822
1810- copyToDestRegs (CI, Paired, InsertBefore, AMDGPU::OpName::vdst, DestReg);
1823+ copyToDestRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::vdst, DestReg);
18111824
18121825 CI.I ->eraseFromParent ();
18131826 Paired.I ->eraseFromParent ();
@@ -1818,12 +1831,14 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeFlatStorePair(
18181831 CombineInfo &CI, CombineInfo &Paired,
18191832 MachineBasicBlock::iterator InsertBefore) {
18201833 MachineBasicBlock *MBB = CI.I ->getParent ();
1821- DebugLoc DL = CI.I ->getDebugLoc ();
1834+
1835+ DebugLoc DL =
1836+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
18221837
18231838 const unsigned Opcode = getNewOpcode (CI, Paired);
18241839
18251840 Register SrcReg =
1826- copyFromSrcRegs (CI, Paired, InsertBefore, AMDGPU::OpName::vdata);
1841+ copyFromSrcRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::vdata);
18271842
18281843 auto MIB = BuildMI (*MBB, InsertBefore, DL, TII->get (Opcode))
18291844 .add (*TII->getNamedOperand (*CI.I , AMDGPU::OpName::vaddr))
@@ -2094,12 +2109,13 @@ MachineBasicBlock::iterator SILoadStoreOptimizer::mergeBufferStorePair(
20942109 CombineInfo &CI, CombineInfo &Paired,
20952110 MachineBasicBlock::iterator InsertBefore) {
20962111 MachineBasicBlock *MBB = CI.I ->getParent ();
2097- DebugLoc DL = CI.I ->getDebugLoc ();
2112+ DebugLoc DL =
2113+ DebugLoc::getMergedLocation (CI.I ->getDebugLoc (), Paired.I ->getDebugLoc ());
20982114
20992115 const unsigned Opcode = getNewOpcode (CI, Paired);
21002116
21012117 Register SrcReg =
2102- copyFromSrcRegs (CI, Paired, InsertBefore, AMDGPU::OpName::vdata);
2118+ copyFromSrcRegs (CI, Paired, InsertBefore, DL, AMDGPU::OpName::vdata);
21032119
21042120 auto MIB = BuildMI (*MBB, InsertBefore, DL, TII->get (Opcode))
21052121 .addReg (SrcReg, RegState::Kill);
0 commit comments