Displaying 20 results from an estimated 6000 matches similar to: "[LLVMdev] another SCEV surprise"
2012 Jun 20
0
[LLVMdev] another SCEV surprise
On Tue, Jun 19, 2012 at 10:21 PM, Preston Briggs
<preston.briggs at gmail.com> wrote:
> When compile the following case and look at the SCEV analysis, I notice that
> the first two loops don't have a LoopInvariantBackedgeTakenCount
> (surprising) and the last one does (not surprising, except in the context of
> the first two examples).
>
> void p4(int *A, int *B, long
2012 Jun 20
1
[LLVMdev] another SCEV surprise
On Wed, 20 Jun 2012 02:18:49 -0700
Eli Friedman <eli.friedman at gmail.com> wrote:
> On Tue, Jun 19, 2012 at 10:21 PM, Preston Briggs
> <preston.briggs at gmail.com> wrote:
> > When compile the following case and look at the SCEV analysis, I
> > notice that the first two loops don't have a
> > LoopInvariantBackedgeTakenCount (surprising) and the last one
2012 Oct 08
3
[LLVMdev] SCEV bottom value
I'd like a value, call it Bottom, such that
SE->getAddExpr(Bottom, X) => Bottom
SE->getMulExpr(Bottom, X,) => Bottom
isKnownPredicate(any, Bottom, X) => false
etc.
I can write code to make NULL work like I want, but it would be simpler if
something was already defined. I'm wondering about SCEV::Unknown. The
documentation suggests I could perhaps use it for a
2012 Oct 08
0
[LLVMdev] SCEV bottom value
On Sun, 7 Oct 2012 18:53:59 -0700
Preston Briggs <preston.briggs at gmail.com> wrote:
> I'd like a value, call it Bottom, such that
>
> SE->getAddExpr(Bottom, X) => Bottom
> SE->getMulExpr(Bottom, X,) => Bottom
> isKnownPredicate(any, Bottom, X) => false
> etc.
>
>
> I can write code to make NULL work like I want, but it would be
> simpler
2012 Oct 08
1
[LLVMdev] SCEV bottom value
Hi Preston,
I was wondering ... "Bottom" is a bit overloaded as far as terms go. Would SCEVNaN be a better name for this beast?
Sameer.
> -----Original Message-----
> From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On
> Behalf Of Sameer Sahasrabuddhe
> Sent: Monday, October 08, 2012 9:16 AM
> To: preston.briggs at gmail.com
> Cc: LLVM
2012 Jun 16
2
[LLVMdev] SCEV not simplifying
I have a pair of SCEVs that appear different to me.
However, when I compute the difference, it's not known to be non-zero.
src = (sext i32 %n to i64)
dst = (sext i32 (1 + %n) to i64)
delta = ((sext i32 %n to i64) + (-1 * (sext i32 (1 + %n) to i64)))
Is this behavior expected?
If I repeat the experiment with 64-bit ints (or unsigned),
things work out like I expect. 32-bit
2012 Jun 18
0
[LLVMdev] SCEV not simplifying
Hi,
So SCEV cannot simplify that expression to -1 because of overflow issues
(take e.g. src=0x7FFF..).
If you compile with 64 bits integers, then the sexts disappear and so SCEV
can do the simplification.
Depending on what you want to do, you may want to either do not extend src
and dst to 64 bits or add a NSW flag to the computations. That will
hopefully make SCEV push the sext outside and
2012 Sep 19
2
[LLVMdev] sign extensions, SCEVs, and wrap flags
On Tue, Sep 18, 2012 at 10:59 PM, Andrew Trick <atrick at apple.com> wrote:
>
> On Sep 18, 2012, at 8:21 PM, Preston Briggs <preston.briggs at gmail.com>
> wrote:
>
> Given the following SCEV,
>
> *(sext i32 {2,+,1}<nw><%for.body> to i64)*
>
>
> from the following C source,
>
> *void strong3(int *A, int *B, int n) {*
> * for (int i =
2012 Sep 19
2
[LLVMdev] sign extensions, SCEVs, and wrap flags
Given the following SCEV,
*(sext i32 {2,+,1}<nw><%for.body> to i64)*
from the following C source,
*void strong3(int *A, int *B, int n) {*
* for (int i = 0; i < n; i++) {*
* A[i + 2] = i;*
* ...*
* }*
*}*
Since the No-Wrap flag is set on the addrec, can't I safely rewrite it as
*{2,+,1}<nw><%for.body>*
If I can, why isn't the SCEV package
2012 Sep 20
3
[LLVMdev] sign extensions, SCEVs, and wrap flags
On Wed, Sep 19, 2012 at 6:30 PM, Andrew Trick <atrick at apple.com> wrote:
>
> On Sep 19, 2012, at 2:18 PM, Preston Briggs <preston.briggs at gmail.com>
> wrote:
>
> On Tue, Sep 18, 2012 at 10:59 PM, Andrew Trick <atrick at apple.com> wrote:
>
>>
>> On Sep 18, 2012, at 8:21 PM, Preston Briggs <preston.briggs at gmail.com>
>> wrote:
2012 Sep 20
0
[LLVMdev] sign extensions, SCEVs, and wrap flags
On Sep 19, 2012, at 2:18 PM, Preston Briggs <preston.briggs at gmail.com> wrote:
> On Tue, Sep 18, 2012 at 10:59 PM, Andrew Trick <atrick at apple.com> wrote:
>
> On Sep 18, 2012, at 8:21 PM, Preston Briggs <preston.briggs at gmail.com> wrote:
>
>> Given the following SCEV,
>>
>> (sext i32 {2,+,1}<nw><%for.body> to i64)
>>
2012 Nov 02
2
[LLVMdev] DependenceAnalysis and PR14241
On 11/02/2012 11:02 AM, Hal Finkel wrote:
> ----- Original Message -----
>> From: "Tobias Grosser" <tobias at grosser.es>
>> To: "preston briggs" <preston.briggs at gmail.com>
>> Cc: "Benjamin Kramer" <benny.kra at gmail.com>, "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
>> Sent: Friday, November
2012 Nov 02
2
[LLVMdev] DependenceAnalysis and PR14241
On 11/02/2012 10:21 AM, Preston Briggs wrote:
>
> My initial guess is that a conservative fix is quick and small (make
> sure the underlying pointers are loop invariant, otherwise give up). A
> better approach would be to somehow turn code like the example into
> array references that can be analyzed. I'll need to think about this and
> do some reading.
Hi Preston,
I looked
2012 Sep 19
0
[LLVMdev] sign extensions, SCEVs, and wrap flags
On Sep 18, 2012, at 8:21 PM, Preston Briggs <preston.briggs at gmail.com> wrote:
> Given the following SCEV,
>
> (sext i32 {2,+,1}<nw><%for.body> to i64)
>
> from the following C source,
>
> void strong3(int *A, int *B, int n) {
> for (int i = 0; i < n; i++) {
> A[i + 2] = i;
> ...
> }
> }
>
> Since the No-Wrap flag is
2012 Nov 02
0
[LLVMdev] DependenceAnalysis and PR14241
Here's the current code (abstracted a bit)
const Instruction *Src,
const Instruction *Dst,
// make sure they are loads and stores, then
const Value *SrcPtr = getPointerOperand(Src); // hides a little
casting, then Src->getPointerOperand
const Value *DstPtr = getPointerOperand(Dst); // ditto
// see how underlying objects alias, then
const GEPOperator *SrcGEP =
2012 Nov 02
0
[LLVMdev] DependenceAnalysis and PR14241
----- Original Message -----
> From: "Tobias Grosser" <tobias at grosser.es>
> To: "preston briggs" <preston.briggs at gmail.com>
> Cc: "Benjamin Kramer" <benny.kra at gmail.com>, "LLVM Developers Mailing List" <llvmdev at cs.uiuc.edu>
> Sent: Friday, November 2, 2012 12:56:53 PM
> Subject: Re: [LLVMdev]
2012 Apr 12
6
[LLVMdev] SIV tests in LoopDependence Analysis, Sanjoy's patch
Hi,
Here is a preliminary (monolithic) version you can comment on. This
is still buggy, however, and I'll be testing for and fixing bugs over
the next few days. I've used your version of the strong siv test.
Thanks!
--
Sanjoy Das.
http://playingwithpointers.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: patch.diff
Type: application/octet-stream
2012 Nov 02
2
[LLVMdev] DependenceAnalysis and PR14241
On 02.11.2012, at 15:53, Preston Briggs <preston.briggs at gmail.com> wrote:
> Hi Chandler,
>
> Thanks for writing.
> Could you give me some C (or C++) for an illustrative example.
> I think I understand your concern, but I'd like to be sure.
Hi Preston,
The bug report at http://llvm.org/bugs/show_bug.cgi?id=14241 has more details, including a C++ test case.
- Ben
2012 Nov 11
1
[LLVMdev] bits in a pointer
When I have to do arithmetic, using APInt, with the component parts of a
SCEV *X, I've been using X->getType()->getIntegerBitWidth() to tell me how
many bits to allocate in my APInts.
Now I've come across a case where the SCEV has a pointer type. How can I
find the width of a pointer in bits?
Thanks,
Preston
-------------- next part --------------
An HTML attachment was scrubbed...
2012 Nov 13
2
[LLVMdev] loop carried dependence analysis?
Erkan, you're right. Sorry about that.
Attached is the most recent version.
Preston
Hi Preston,
> I am trying to use DA as well. I used your example and commands that you
> wrote in order to get DA information.
> However, it does not report any dependence info.
> I am wondering whether your local copy differs from the one on the
> repository ?
> Thanks.
> Erkan.