search for: cvp

Displaying 20 results from an estimated 55 matches for "cvp".

Did you mean: cmp
2017 Feb 06
2
Adding Extended-SSA to LLVM
...t; %cmp = icmp sge i32 %x, 0 ; x > 0 > br i1 %cmp, label %bb2, label %bb3 > bb1: > %x2 = add nsw nuw %x, 1 > %cmp2 = icmp sge i32 %x2, 2 ; x+1 > 2 / x > 1 > br i1 %cmp2, label %bb2, label %bb3 > bb2: > %x3 = phi i32 [ %x, %bb0 ], [ %x2, %bb1 ] > ; CVP says: %x3 is > 0 > ... > br label %bb3 > bb3: > ... > } > > CVP can infer that %x > 0 because the union of the intervals given to the > phi node imply that. > Sure, we can split those edges, but maybe adding the predicate info to > blocks bb0 & bb1 wou...
2018 May 23
0
RFC: should CVP always narrow the width of lshr?
Hi. In https://reviews.llvm.org/D46760, Bixia Zheng notes that given the pattern like [1] %za = zext i32 %a to i64 %udiv = udiv i64 %za, <C> %urem = urem i64 %za, <C> %uadd = add i64 %udiv, %urem ret i64 %uadd the CVP will reduce the width of udiv/urem, without considerations for the new instructions, or whether the new width is legal for the target. That was implemented in https://reviews.llvm.org/D44102 As Sanjay Patel notes in https://reviews.llvm.org/D47113#1106601, > We overlooked these questions in the...
2016 Jan 14
3
High memory use and LVI/Correlated Value Propagation
...the GVN issue, the cases I have run into do > > finish after a(n unreasonable) while, so at least it is not trivially > > superlinear. > > > > > Okay, so rather than artificially limit stuff, we should see if we can fix > the efficiency of the algorithms. > > CVP is an O(N*lattice height) pass problem. It sounds like it is being more > than that for you. I assume you mean something like #BB * #variables? The instances I have seen are all very large functions with many branches. Consider it from this perspective: there is currently only one hammer for co...
2016 Sep 27
4
Inferring nsw/nuw flags for increment/decrement based on relational comparisons
...but is not true at the instruction? CorrelatedValuePropagation and JumpThreading appear to be the only transformation passes making use of LVI at the moment, and that's probably something we don't want to change. This kind of nsw/nuw flag inference doesn't really fit in either, but CVP is definitely the closer match and it should be possible to shoehorn it in there. > Fair warning, we're actively working through issues related to nsw/nuw > inference causing overall regressions. I think we've got the key one > identified and a patch is under review, but I suspe...
2017 Feb 03
3
Speculation and control dependent no wrap flags
I'm looking at the bug (https://llvm.org/bugs/show_bug.cgi?id=31181) which was triggered by my change to make CVP mark adds as no wrap (https://reviews.llvm.org/rL278220) and I'd like to have some broader discussion of the problem. In this bug CVP correctly marks an add as nuw basing on the loop latch check, but later loop rotation pass moves the add to a point before the check. In the new context nuw is n...
2016 Jan 14
2
High memory use and LVI/Correlated Value Propagation
...rlinear. > > > > > > > > > > > > > > > > > Okay, so rather than artificially limit stuff, we should see if > > > we > > > can fix > > > > the efficiency of the algorithms. > > > > > > > > CVP is an O(N*lattice height) pass problem. It sounds like it is > > > being more > > > > than that for you. > > > I assume you mean something like #BB * #variables? > > No. > ;) > I mean the theoretical complexity of performing the optimization CVP > pe...
2004 May 03
2
Lattice: finding out xlim within panel function
Dear Lattice bit-meddlers, while within a panel function for xyplot, how can I find out the values of (effectively) xlim and ylim -- no matter whether they have been set explicitly or chosen by Lattice itself? I have just tried for an hour to find out, with no success whatsoever. I looked in Grid for something that would return such data, but got lost. I looked at tracebacks of panel calls,
2019 Mar 24
3
call an existing IPO pass
Hi, I found an existing pass "CalledValuePropagation" that can solve the problem I raised a few days ago regarding the "callees" metadata ( https://groups.google.com/forum/#!topic/llvm-dev/yjtZVMH_aC4). Now I have difficulty in calling this pass in my own pass. In my own pass, I called "getAnalysis<CalledValuePropagationPass>()" and in the
2017 Feb 05
3
Adding Extended-SSA to LLVM
...ritical edges (otherwise i can't see how they have info to propagate :P), and if you break the critical edges, it works just fine. The need to split critical edges is pretty much true for maximal results for any optimization. > This might be an ok abstraction for GVN, but for things like CVP it's > probably not. CVP merges information incoming from multiple edges (as any > other fancier abstractions we may want to have in the future will). > It's important to note: we sort phi node uses into the predecessor block they belong to, so that restriction does *not* apply t...
2010 Mar 03
1
asterisk SIP, SIPAddHeader() and Cisco GED-125
Greetings: I'm in the situation where I'm trying to splash information picked off by an asterisk IVR into a Cisco call center environment. I'm under the impression that the ONLY way to do this is to setup socket connections with the Cisco "voice processor", or CVP, and send packets corresponding to GED-125. Cisco has a detailed 100+-page document detailing the internals of what these packets need to look like. But wouldn't it be nice if instead, you could use SIPAddHeader() with X tags and have Cisco pick off the out-of-band values from SIP packets? Wou...
2016 Jan 14
3
High memory use and LVI/Correlated Value Propagation
On Wed, Jan 13, 2016 at 03:38:24PM -0800, Philip Reames wrote: > I don't think that arbitrary limiting the complexity of the search is the > right approach. There are numerous ways the LVI infrastructure could be > made more memory efficient. Fixing the existing code to be memory efficient > is the right approach. Only once there's no more low hanging fruit should > we
2016 Jan 13
5
High memory use and LVI/Correlated Value Propagation
...s related to GVN and MemoryDependenceAnalysis and has a pending patch. The other is related to the Correlated Value Propagation and Lazy Value Information cache. Attached is a heap profile for one of the relevant test cases. Looking at the sources, I don't see any form of CFG limiters in LVI or CVP, so it doesn't seem surprising that large memory use can be easily triggered. This normally also corresponds to very slow compilation, so it addressing it fixes two issues at the same time. A test case can be found in https://llvm.org/bugs/show_bug.cgi?id=10584. The question for me is: where s...
2006 May 12
4
Title of page with multiple plots
...like to have all four plots share a common title. I have tried the following code, but the title is centered over the fourth graph and not centered across all four plots. Does anyone have any suggestions? R 2.1.1 windows xp oldpar<-par(mfcol =c(1,4),ask=TRUE) plot(p,varp) plot(p,SEp) plot(p,CVp) plot(p,ppval) title(paste("P and 95%CI for a sample size of",n,"subjects.")) Thanks, John John Sorkin M.D., Ph.D. Chief, Biostatistics and Informatics Baltimore VA Medical Center GRECC and University of Maryland School of Medicine Claude Pepper OAIC University of Maryland S...
2016 Aug 05
2
Reasoning about results of min and max with a constant
...this pattern in existing facilities (computeKnownBits, etc.) in order to more broadly apply optimizations that use those facilities. > LVI has a couple of special cases around select idioms. This would be another reasonable one to add. This would give range analysis (used in JumpThreading and CVP) for this idiom. I thought we already had this one actually. >> >> Any insight would be appreciated. Thanks! >> _______________________________________________ >> LLVM Developers mailing list >> llvm-dev at lists.llvm.org >> http://lists.llvm.org/cgi-bin/mailma...
2019 Dec 01
4
ConstantRange modelling precision?
Hello. This question has come up in https://reviews.llvm.org/D70043 There, i'm teaching ConstantRange how no-wrap flags affect the range of `mul` instruction, with end goal of exploiting this in LVI/CVP. There are certain combinations of ranges and no-wrap flags that result in always-overflowing `mul`. For example, `mul nuw nsw i4 [2,0), [4,0)` always overflows: https://rise4fun.com/Alive/1aK so for such ranges the ideal answer is `empty set`; although it wouldn't be incorrect to return a mor...
2009 Sep 27
0
puzzle with drawDetails for a class derived from a gTree
...t;- function(right="right text", left="left text", col = "red", edits=NULL, draw=TRUE, name=NULL, gp=gpar()) { ## layout for the two children vp <- viewport(layout=grid.layout(1, 2)) ## viewports, one for each child cvp <- vpList(viewport(layout.pos.row=1, layout.pos.col=1, name="leftvp"), viewport(layout.pos.row=1, layout.pos.col=2, name="rightvp")) x <- gTree(right=right, left=left, col=col, childrenvp=cvp, edits=edits, name=nam...
2017 Apr 26
2
Is there any real downside to constructing the new SimplifyQuery once
...he pass B. actually have more information sitting around than they are passing along. For example, instcombine has a DomTree and AssumptionCache that are required, but it doesn't pass them to SimplifyBinOp in a bunch of cases. JumpThreading has TLI but doesn't pass it to SimplifyCmpInst. CVP at least admits it has a problem: "CorrelatedValuePropagation.cpp: // FIXME: Provide TLI, DT, AT to SimplifyInstruction. CorrelatedValuePropagation.cpp: if (Value *V = SimplifyInstruction(P, DL)) { " (This is because it uses LVI, which requires those things, but it doesn't ask for t...
2016 Jan 14
5
High memory use and LVI/Correlated Value Propagation
...the GVN issue, the cases I have run > into do > finish after a(n unreasonable) while, so at least it is not trivially > superlinear. > > > > Okay, so rather than artificially limit stuff, we should see if we can > fix the efficiency of the algorithms. > > CVP is an O(N*lattice height) pass problem. It sounds like it is being > more than that for you. (Deliberately replying up thread to skip detailed discussion of the lattice.) We have had bugs in the past which causes us to move back up the lattice. The most likely cause of long running time(*)...
2016 Jul 30
3
Reasoning about results of min and max with a constant
Hi all, Say we have this IR: %1 = icmp slt i16 %x, 0 %.x = select i1 %1, i16 0, i16 %x This is the canonical form of what is effectively max(x, 0). From what I can tell LLVM has no facilities to determine from this code that %.x >= 0, so (for example) an SExt on %.x will not be converted to a ZExt. I'm interested in seeing what sorts of changes would be needed to recognize this pattern
2017 May 19
5
[llvm] r303387 - [InstCombine] add more tests for xor-of-icmps; NFC
...: > > > On Fri, May 19, 2017 at 11:00 AM, Davide Italiano <davide at freebsd.org> > wrote: > >> On Fri, May 19, 2017 at 10:00 AM, Sanjay Patel <spatel at rotateright.com> >> wrote: >> > Is "VRP" (value range propagation) in LLVM-speak "CVP" (correlated value >> > propagation)? >> > >> > If so, we have this comment regarding compares: >> > // As a policy choice, we choose not to waste compile time on anything >> > where >> > // the comparison is testing local values. >&...