Displaying 6 results from an estimated 6 matches for "nowrapflags".
2020 Jul 26
2
[LAA] RtCheck on pointers of different address spaces.
...-----------------------------------------------------------------------------------------------------------------------------
opt: $SRC/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:2165: const llvm::SCEV *llvm::ScalarEvolution::getAddExpr(SmallVectorImpl<const llvm::SCEV *> &, SCEV::NoWrapFlags, unsigned int): Assertion `getEffectiveSCEVType(Ops[i]->getType()) == ETy && "SCEVAddExpr operand types don't match!"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash backtrace.
Stack dump:
0. Program arguments: $Tools/bin/opt -O3...
2020 Jul 26
2
[LAA] RtCheck on pointers of different address spaces.
...-----------------------------------------------------------------------------------------------------------------------------
opt: $SRC/llvm-project/llvm/lib/Analysis/ScalarEvolution.cpp:2165: const llvm::SCEV *llvm::ScalarEvolution::getAddExpr(SmallVectorImpl<const llvm::SCEV *> &, SCEV::NoWrapFlags, unsigned int): Assertion `getEffectiveSCEVType(Ops[i]->getType()) == ETy && "SCEVAddExpr operand types don't match!"' failed.
PLEASE submit a bug report to https://bugs.llvm.org/<https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fbugs.llvm.org%2F&...
2013 Nov 16
0
[LLVMdev] SCEV getMulExpr() not propagating Wrap flags
...UW and NSW flags if both the
> // outer mul and the inner addrec are guaranteed to have no overflow.
> //
> // No self-wrap cannot be guaranteed after changing the step size, but
> // will be inferred if either NUW or NSW is true.
> Flags = AddRec->getNoWrapFlags(clearFlags(Flags, SCEV::FlagNW));
> const SCEV *NewRec = getAddRecExpr(NewOps, AddRecLoop, Flags);
>
> // If all of the other operands were loop invariant, we are done.
> if (Ops.size() == 1) return NewRec;
>
> I understand that you can't assume it won'...
2013 Nov 13
2
[LLVMdev] SCEV getMulExpr() not propagating Wrap flags
...w addrec. Propagate the NUW and NSW flags if both the
// outer mul and the inner addrec are guaranteed to have no overflow.
//
// No self-wrap cannot be guaranteed after changing the step size, but
// will be inferred if either NUW or NSW is true.
Flags = AddRec->getNoWrapFlags(clearFlags(Flags, SCEV::FlagNW));
const SCEV *NewRec = getAddRecExpr(NewOps, AddRecLoop, Flags);
// If all of the other operands were loop invariant, we are done.
if (Ops.size() == 1) return NewRec;
I understand that you can't assume it won't wrap around with the new
str...
2012 Dec 10
3
[LLVMdev] [PATCH] Teaching ScalarEvolution to handle IV=add(zext(trunc(IV)), Step)
...include/llvm/Analysis/ScalarEvolution.h
index 235adca..79e545d 100644
--- a/include/llvm/Analysis/ScalarEvolution.h
+++ b/include/llvm/Analysis/ScalarEvolution.h
@@ -654,6 +654,10 @@ namespace llvm {
const SCEV *getMinusSCEV(const SCEV *LHS, const SCEV *RHS,
SCEV::NoWrapFlags Flags = SCEV::FlagAnyWrap);
+ /// Return a SCEV that truncates 'V' to 'Ty' *and* then zero extends that
+ /// value back to 'V's original type.
+ const SCEV *getTruncateAndZeroExtend(const SCEV *V, Type *Ty);
+
/// getTruncateOrZeroExtend - Return a SCEV corr...
2015 Jun 10
3
[LLVMdev] Question about NoWrap flag for SCEVAddRecExpr
I am testing vectorization on the following test case:
float x[1024], y[1024];
void myloop1() {
for (long int k = 0; k < 512; k++) {
x[2*k] = x[2*k]+y[k];
}
}
Vectorization failed due to "unsafe dependent memory operation". I traced
the LoopAccessAnalysis.cpp and found the reason is the NoWrapFlag for
SCEVAddRecExpr is not set and consequently the