@@ -1731,6 +1731,21 @@ void llvm::ConvertDebugDeclareToDebugValue(DbgVariableIntrinsic *DII,
1731
1731
SI->getIterator ());
1732
1732
}
1733
1733
1734
+ // / Moves an llvm.dbg.value intrinsic before a store to an alloca'd value
1735
+ // / that has an associated llvm.dbg.value intrinsic.
1736
+ void llvm::MoveDebugValueToStoreLoc (DbgVariableIntrinsic *DII, StoreInst *SI,
1737
+ DIBuilder &Builder) {
1738
+ auto *DIVar = DII->getVariable ();
1739
+ assert (DIVar && " Missing variable" );
1740
+ auto *DIExpr = DII->getExpression ();
1741
+ Value *DV = SI->getValueOperand ();
1742
+
1743
+ DebugLoc NewLoc = getDebugValueLoc (DII);
1744
+
1745
+ insertDbgValueOrDbgVariableRecord (Builder, DV, DIVar, DIExpr, NewLoc,
1746
+ SI->getIterator ());
1747
+ }
1748
+
1734
1749
// / Inserts a llvm.dbg.value intrinsic before a load of an alloca'd value
1735
1750
// / that has an associated llvm.dbg.declare intrinsic.
1736
1751
void llvm::ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII,
@@ -1805,6 +1820,19 @@ void llvm::ConvertDebugDeclareToDebugValue(DbgVariableRecord *DVR,
1805
1820
SI->getParent ()->insertDbgRecordBefore (NewDVR, SI->getIterator ());
1806
1821
}
1807
1822
1823
+ void llvm::MoveDebugValueToStoreLoc (DbgVariableRecord *DVR, StoreInst *SI,
1824
+ DIBuilder &Builder) {
1825
+ auto *DIVar = DVR->getVariable ();
1826
+ assert (DIVar && " Missing variable" );
1827
+ auto *DIExpr = DVR->getExpression ();
1828
+ Value *DV = SI->getValueOperand ();
1829
+
1830
+ DebugLoc NewLoc = getDebugValueLoc (DVR);
1831
+
1832
+ insertDbgValueOrDbgVariableRecord (Builder, DV, DIVar, DIExpr, NewLoc,
1833
+ SI->getIterator ());
1834
+ }
1835
+
1808
1836
// / Inserts a llvm.dbg.value intrinsic after a phi that has an associated
1809
1837
// / llvm.dbg.declare intrinsic.
1810
1838
void llvm::ConvertDebugDeclareToDebugValue (DbgVariableIntrinsic *DII,
0 commit comments