<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/92537>92537</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[DebugInfo][NaryReassociate] Missing debug location updates
</td>
</tr>
<tr>
<th>Labels</th>
<td>
new issue
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
Apochens
</td>
</tr>
</table>
<pre>
NaryReassociate[-L514](https://github.com/llvm/llvm-project/blob/f5c8242042c959cbf476778e1d8a874fc8747801/llvm/lib/Transforms/Scalar/NaryReassociate.cpp#L514), [-L517](https://github.com/llvm/llvm-project/blob/f5c8242042c959cbf476778e1d8a874fc8747801/llvm/lib/Transforms/Scalar/NaryReassociate.cpp#L517C5-L517C70): the new Add and Mul finally replace `I` without a proper debug location assigned in [`NaryReassociatePass::doOneIteration(Function &F)`](https://github.com/llvm/llvm-project/blob/f5c8242042c959cbf476778e1d8a874fc8747801/llvm/lib/Transforms/Scalar/NaryReassociate.cpp#L231).
```cpp
Instruction *NaryReassociatePass::tryReassociatedBinaryOp(const SCEV *LHSExpr,
Value *RHS,
BinaryOperator *I) {
// Look for the closest dominator LHS of I that computes LHSExpr, and replace
// I with LHS op RHS.
auto *LHS = findClosestMatchingDominator(LHSExpr, I);
if (LHS == nullptr)
return nullptr;
Instruction *NewI = nullptr;
switch (I->getOpcode()) {
case Instruction::Add:
-> NewI = BinaryOperator::CreateAdd(LHS, RHS, "", I->getIterator());
break;
case Instruction::Mul:
-> NewI = BinaryOperator::CreateMul(LHS, RHS, "", I->getIterator());
break;
default:
llvm_unreachable("Unexpected instruction.");
}
NewI->takeName(I);
return NewI;
}
```
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJzUVU9v47YT_TT0ZRBDoiRLOvjgPzFiINn8EP-614IiRxYbmhRIqtl8-4KUZTtue1iglwUEWyBn3rw3fBoy5-RRIy5JsSbFdsYG3xm7XPWGd6jdrDHic_mN2c83ZM4ZLplHUqwfnos0J8WW0KrzvnckWxG6I3R3lL4bmjk3J0J3Sv05_T301vyB3BO6a5RpCN21Ba9oTpOc8rqoedPm5aIsK0xFxaoyb3lV5mWVpDc4MuT93zLtWmNPjtDdgTPFLKG7O4pz3veEZpElrQndwJl0-UuQLjdFJLspk0A_W4HvEDR-wEoIYFrAy6CglZop9QkWe8U4Alkke7JI4EP6zgweGPTW9GhBYDMcQRnOvDQazmcuQOrQFrJI7oj8j7nYnGwlzKvGvUcbMwmtdoPmEYTQxS5wWyS_QEdplhJaz0myJcnq_LtIxieExJW9dt4Ok7rVv_bEf1kXa6mZ_XztCa240c7DYfP4PQA8Px0ef_SW0M2ID9-ZGjDsvD0drqtTfuixsWF7T2gNpFyfA2BsKTwb8w6tsdELXBmHzoMwJ6lj4vPTAUwLe_Ad88DNqR88OriyiL45e-UOeh89M0L08PZ0mE8BbPDmLAZItg2eE5ux9gvzvJP6uJ0oEFrdVNtH515EyBbG_QATkPSgVO9tiBpDLPrB6sv6lDoB3B8PfuzhFudayn1Iz7tQbv9Asscj-teeG4GEVnEYfGkuZw5vscczXgkRXmJMwAC41Pt6XmP4xiLzGJKixCB_PGMglMZnAxOX8WuK3RrZXJk3Ftn7jZB_5vYyqJ_nFpL-U24CWzYof2ECABA-0N8HbZHxjjVqbDj9TeOPHrmPA-eiZR5L3zqElNvpNQgKlDx7x2_sFIDu7HQ2Swi8OmUCuHzbM7HMRJ3VbIbLtEyLukiznM66JU9znuVUiKbOsEky5FXD8rRJmmrBMmQzuaQJzZMiLdMsqRM65wW2mahYUSQJE4KSPMETk2oeRM-NPc6kcwMua1pk5UyxBpWLlyqlYW7HzSC52M7sMo7CZjg6kidKOu-uKF56FW_jbRjae92aMF-L9d_u4C28SOekPt6P96EXzKObDVYtf3oqR55hpEYdfwUAAP__rO90xw">