[llvm] d7c12ea - [LoopRotate] Use `poison` instead of `undef` as placeholder in debug info [NFC] (#119135)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 10 07:06:53 PST 2024
Author: Pedro Lobo
Date: 2024-12-10T15:06:48Z
New Revision: d7c12ea29e614db073641f204e4619d7e54b1ff5
URL: https://github.com/llvm/llvm-project/commit/d7c12ea29e614db073641f204e4619d7e54b1ff5
DIFF: https://github.com/llvm/llvm-project/commit/d7c12ea29e614db073641f204e4619d7e54b1ff5.diff
LOG: [LoopRotate] Use `poison` instead of `undef` as placeholder in debug info [NFC] (#119135)
The `poison` values are used to substitute debug information of values
moved from the original header into the preheader that are no longer
available in the former.
Added:
Modified:
llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
llvm/test/Transforms/LoopRotate/dbgvalue.ll
Removed:
################################################################################
diff --git a/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp b/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
index 04042e71a2b82e..fffff295ba926d 100644
--- a/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
+++ b/llvm/lib/Transforms/Utils/LoopRotationUtils.cpp
@@ -171,14 +171,14 @@ static void RewriteUsesOfClonedInstructions(BasicBlock *OrigHeader,
// Users in the OrigPreHeader need to use the value to which the
// original definitions are mapped and anything else can be handled by
// the SSAUpdater. To avoid adding PHINodes, check if the value is
- // available in UserBB, if not substitute undef.
+ // available in UserBB, if not substitute poison.
Value *NewVal;
if (UserBB == OrigPreheader)
NewVal = OrigPreHeaderVal;
else if (SSA.HasValueForBlock(UserBB))
NewVal = SSA.GetValueInMiddleOfBlock(UserBB);
else
- NewVal = UndefValue::get(OrigHeaderVal->getType());
+ NewVal = PoisonValue::get(OrigHeaderVal->getType());
DbgValue->replaceVariableLocationOp(OrigHeaderVal, NewVal);
}
@@ -194,14 +194,14 @@ static void RewriteUsesOfClonedInstructions(BasicBlock *OrigHeader,
// Users in the OrigPreHeader need to use the value to which the
// original definitions are mapped and anything else can be handled by
// the SSAUpdater. To avoid adding PHINodes, check if the value is
- // available in UserBB, if not substitute undef.
+ // available in UserBB, if not substitute poison.
Value *NewVal;
if (UserBB == OrigPreheader)
NewVal = OrigPreHeaderVal;
else if (SSA.HasValueForBlock(UserBB))
NewVal = SSA.GetValueInMiddleOfBlock(UserBB);
else
- NewVal = UndefValue::get(OrigHeaderVal->getType());
+ NewVal = PoisonValue::get(OrigHeaderVal->getType());
DVR->replaceVariableLocationOp(OrigHeaderVal, NewVal);
}
}
diff --git a/llvm/test/Transforms/LoopRotate/dbgvalue.ll b/llvm/test/Transforms/LoopRotate/dbgvalue.ll
index b58d821fbca5d7..026306a4637f0e 100644
--- a/llvm/test/Transforms/LoopRotate/dbgvalue.ll
+++ b/llvm/test/Transforms/LoopRotate/dbgvalue.ll
@@ -113,7 +113,7 @@ return: ; preds = %if.end
; Check that the dbg.values move up to being immediately below the PHIs,
; using their Values. However once we exit the loop, the x and y values
-; become irrelevant and undef, only z gets an LCSSA PHI to preserve it.
+; become irrelevant and poison, only z gets an LCSSA PHI to preserve it.
;
; Note that while the icmp is initially undominated by any dbg.value and thus
; shouldn't get a variable location, the first iteration is peeled off into the
@@ -138,8 +138,8 @@ define i32 @tak2(i32 %x, i32 %y, i32 %z) nounwind ssp !dbg !21 {
; CHECK: tail call i32 @tak(i32
; CHECK: if.end:
; CHECK-NEXT: z.tr.lcssa = phi i32
-; CHECK-NEXT: #dbg_value(i32 undef
-; CHECK-NEXT: #dbg_value(i32 undef
+; CHECK-NEXT: #dbg_value(i32 poison
+; CHECK-NEXT: #dbg_value(i32 poison
; CHECK-NEXT: #dbg_value(i32 %z.tr.lcssa
entry:
br label %tailrecurse
More information about the llvm-commits
mailing list