Issue 97986
Summary [DebugInfo][SimplifyIndVar] Missing debug location updates for overflow/saturation instructions
Labels
Assignees
Reporter svs-quic
    There are a couple of  instances where the debug information has not been propagated to the new overflow/saturation instructions:

```
 BinaryOperator *NewResult = BinaryOperator::Create(
 WO->getBinaryOp(), WO->getLHS(), WO->getRHS(), "", WO->getIterator());

.....

  for (auto *U : WO->users()) {
 if (auto *EVI = dyn_cast<ExtractValueInst>(U)) {
      if (EVI->getIndices()[0] == 1)
 EVI->replaceAllUsesWith(ConstantInt::getFalse(WO->getContext()));
 else {
        assert(EVI->getIndices()[0] == 0 && "Only two possibilities!");
        EVI->replaceAllUsesWith(NewResult);
 }
```

```
BinaryOperator *BO = BinaryOperator::Create(
 SI->getBinaryOp(), SI->getLHS(), SI->getRHS(), SI->getName(), SI->getIterator());
  if (SI->isSigned())
 BO->setHasNoSignedWrap();
  else
 BO->setHasNoUnsignedWrap();

  SI->replaceAllUsesWith(BO);
```
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to