[llvm] [SCCPSolver] Move getValueState to later (PR #175307)
via llvm-commits
llvm-commits at lists.llvm.org
Sat Jan 10 04:41:57 PST 2026
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-function-specialization
Author: None (aokblast)
<details>
<summary>Changes</summary>
If the IV is overDefined, there is no reason for us to init V0State.
---
Full diff: https://github.com/llvm/llvm-project/pull/175307.diff
1 Files Affected:
- (modified) llvm/lib/Transforms/Utils/SCCPSolver.cpp (+2-3)
``````````diff
diff --git a/llvm/lib/Transforms/Utils/SCCPSolver.cpp b/llvm/lib/Transforms/Utils/SCCPSolver.cpp
index 021bf0618754a..b5b7a7fbb587b 100644
--- a/llvm/lib/Transforms/Utils/SCCPSolver.cpp
+++ b/llvm/lib/Transforms/Utils/SCCPSolver.cpp
@@ -1661,14 +1661,13 @@ void SCCPInstVisitor::visitSelectInst(SelectInst &I) {
// Handle Unary Operators.
void SCCPInstVisitor::visitUnaryOperator(Instruction &I) {
- ValueLatticeElement V0State = getValueState(I.getOperand(0));
-
ValueLatticeElement &IV = ValueState[&I];
// resolvedUndefsIn might mark I as overdefined. Bail out, even if we would
// discover a concrete value later.
if (IV.isOverdefined())
return (void)markOverdefined(&I);
+ ValueLatticeElement V0State = getValueState(I.getOperand(0));
// If something is unknown/undef, wait for it to resolve.
if (V0State.isUnknownOrUndef())
return;
@@ -1687,13 +1686,13 @@ void SCCPInstVisitor::visitFreezeInst(FreezeInst &I) {
if (I.getType()->isStructTy())
return (void)markOverdefined(&I);
- ValueLatticeElement V0State = getValueState(I.getOperand(0));
ValueLatticeElement &IV = ValueState[&I];
// resolvedUndefsIn might mark I as overdefined. Bail out, even if we would
// discover a concrete value later.
if (IV.isOverdefined())
return (void)markOverdefined(&I);
+ ValueLatticeElement V0State = getValueState(I.getOperand(0));
// If something is unknown/undef, wait for it to resolve.
if (V0State.isUnknownOrUndef())
return;
``````````
</details>
https://github.com/llvm/llvm-project/pull/175307
More information about the llvm-commits
mailing list