Displaying 4 results from an estimated 4 matches for "isoverdefined".
2016 Dec 31
0
SCCP is not always correct in presence of undef (+ proposed fix)
...CCP.cpp b/lib/Transforms/Scalar/SCCP.cpp
index 8a6be97..45f1241 100644
--- a/lib/Transforms/Scalar/SCCP.cpp
+++ b/lib/Transforms/Scalar/SCCP.cpp
@@ -908,8 +908,18 @@ void SCCPSolver::visitBinaryOperator(Instruction &I) {
}
// If something is undef, wait for it to resolve.
- if (!V1State.isOverdefined() && !V2State.isOverdefined())
- return;
+ if (!V1State.isOverdefined() && !V2State.isOverdefined()) {
+ Constant *L = UndefValue::get(I.getOperand(0)->getType());
+ if (V1State.isConstant())
+ L = V1State.getConstant();
+ Constant *R = UndefValue::get(I.getOper...
2016 Dec 31
4
SCCP is not always correct in presence of undef (+ proposed fix)
...p
> index 8a6be97..45f1241 100644
> --- a/lib/Transforms/Scalar/SCCP.cpp
> +++ b/lib/Transforms/Scalar/SCCP.cpp
> @@ -908,8 +908,18 @@ void SCCPSolver::visitBinaryOperator(Instruction &I) {
> }
>
> // If something is undef, wait for it to resolve.
> - if (!V1State.isOverdefined() && !V2State.isOverdefined())
> - return;
> + if (!V1State.isOverdefined() && !V2State.isOverdefined()) {
> + Constant *L = UndefValue::get(I.getOperand(0)->getType());
> + if (V1State.isConstant())
> + L = V1State.getConstant();
> + Constant...
2016 Dec 31
0
SCCP is not always correct in presence of undef (+ proposed fix)
...>> --- a/lib/Transforms/Scalar/SCCP.cpp
>> +++ b/lib/Transforms/Scalar/SCCP.cpp
>> @@ -908,8 +908,18 @@ void SCCPSolver::visitBinaryOperator(Instruction &I)
>> {
>> }
>>
>> // If something is undef, wait for it to resolve.
>> - if (!V1State.isOverdefined() && !V2State.isOverdefined())
>> - return;
>> + if (!V1State.isOverdefined() && !V2State.isOverdefined()) {
>> + Constant *L = UndefValue::get(I.getOperand(0)->getType());
>> + if (V1State.isConstant())
>> + L = V1State.getConstant();...
2016 Dec 30
5
SCCP is not always correct in presence of undef (+ proposed fix)
Hi.
I'm sending this email to -dev as this may be of interest of
many/people may have opinions/want to try the change before it goes in
to report problems.
I've been recently working on a patch to integrate `undef` in the SCCP
solver, in the hope of fixing a tail of latent bugs in SCCP which
remained uncovered for many years. I think this is a decent time to
propose, so that it can