Displaying 4 results from an estimated 4 matches for "suboperator".
2013 Oct 01
3
[LLVMdev] ScalarEvolution::createNodeForPHI
...Flags = setFlags(Flags, SCEV::FlagNW);
}
//-------------------------------------------------------------------------//
Is there any reason to not check also Sub operator in a similar way to the Add
operator?
//-------------------------------------------------------------------------//
if (const SubOperator *OBO = dyn_cast<SubOperator>(BEValueV)) {
if (OBO->hasNoUnsignedWrap())
Flags = setFlags(Flags, SCEV::FlagNUW);
if (OBO->hasNoSignedWrap())
Flags = setFlags(Flags, SCEV::FlagNSW);
}
//-------------------------------------------------------------------------//
Thanks in adva...
2013 Oct 02
0
[LLVMdev] ScalarEvolution::createNodeForPHI
...> }
> //-------------------------------------------------------------------------//
>
> Is there any reason to not check also Sub operator in a similar way to the Add
> operator?
>
> //-------------------------------------------------------------------------//
> if (const SubOperator *OBO = dyn_cast<SubOperator>(BEValueV)) {
> if (OBO->hasNoUnsignedWrap())
> Flags = setFlags(Flags, SCEV::FlagNUW);
> if (OBO->hasNoSignedWrap())
> Flags = setFlags(Flags, SCEV::FlagNSW);
> }
> //-----------------------------------------------------------------...
2013 Oct 02
1
[LLVMdev] ScalarEvolution::createNodeForPHI
...------------------------------------------------//
> >
> > Is there any reason to not check also Sub operator in a similar way
> > to the Add
> > operator?
> >
> > //-------------------------------------------------------------------------//
> > if (const SubOperator *OBO = dyn_cast<SubOperator>(BEValueV)) {
> > if (OBO->hasNoUnsignedWrap())
> > Flags = setFlags(Flags, SCEV::FlagNUW);
> > if (OBO->hasNoSignedWrap())
> > Flags = setFlags(Flags, SCEV::FlagNSW);
> > }
> > //-----------------------------------...
2015 Jan 15
4
[LLVMdev] confusion w.r.t. scalar evolution and nuw
I've been doing some digging in this area (scev, wrapping arithmetic),
learning as much as I can, and have reached a point where I'm fairly
confused about the semantics of nuw in scalar evolution expressions.
Consider the following program:
define void @foo(i32 %begin) {
entry:
br label %loop
loop:
%idx = phi i32 [ %begin, %entry ], [ %idx.dec, %loop ]
%idx.dec = sub nuw i32