similar to: loop canonical variables

Displaying 20 results from an estimated 4000 matches similar to: "loop canonical variables"

2017 Jul 25
2
loop canonical variables
I call this function and it returns only "i" in my example. Are there any ways to return "j" also? 2017-07-25 19:11 GMT+02:00 Michael Kruse <llvmdev at meinersbur.de>: > There is Loop::getCanonicalInductionVariable() > > You may need to run the "-indvars" (IndVarSimplify) pass before it > returns a value. I am not sure it normalizes the step size
2017 Jul 25
2
loop canonical variables
Hi Anastasiya, If it fits you use case, you can consider walking the loop header and calling getSCEV() on all of the PHI nodes in the header. This will give you a SCEV* which should be easier to analyze than manually inspecting PHI cycles. Thanks! -- Sanjoy On Tue, Jul 25, 2017 at 11:42 AM, Michael Kruse via llvm-dev <llvm-dev at lists.llvm.org> wrote: > 2017-07-25 19:32 GMT+02:00
2017 Aug 11
2
PHI nodes and connected ICMp
Thank you for your answer! I tested your example, yes, perhaps I should preserve some kind of tree to parse this start and end expressions for induction variable... I was surprised, that SCEV cannot compute the tripcount here. I thought, that all linear and maybe expressions with multiplication are suitable for analysis. 2017-08-10 19:30 GMT+02:00 Sanjoy Das <sanjoy at google.com>: > Hi
2017 Aug 13
2
PHI nodes and connected ICMp
To continue this topic: sometimes SCEV's behavior is rather controversial : for loops with i changing as i \=2 for example, he can't figure what the type of expressions is, but surprisingly can determine max trip count. Shouldn't it be able to detect or not detect these parameters at the same time? 2017-08-11 15:56 GMT+02:00 Anastasiya Ruzhanskaya < anastasiya.ruzhanskaya at
2017 Aug 10
4
PHI nodes and connected ICMp
Hi! By only two cases I mean , that in exiting block when computing the condition related to PHI node I can expect only icmp on one of incoming values or on phi node itself... I tried to come up with some more complex examples but I always receive only these two cases, that is why I am asking. This problem still relates to the problem of all induction, cumulative and so on variables in loop. SCEV
2017 Aug 07
2
vrp
I am primarily interested in phi nodes and their induction variables, in ValueTracking file there is an analysis of them, but if the upper bound is inf, it is not working? 2017-08-07 11:41 GMT+02:00 Anastasiya Ruzhanskaya < anastasiya.ruzhanskaya at frtk.ru>: > So, it is not supported to determine by this instruction : %cmp = icmp slt > i32 %i.03, 99, > that %i.03 = phi i32 [ 0,
2017 Aug 07
2
vrp
On Mon, Aug 7, 2017 at 2:14 AM, Anastasiya Ruzhanskaya via llvm-dev <llvm-dev at lists.llvm.org> wrote: > I am trying to print it like this (maybe here is smth wrong?) > > > LazyValueInfo &LV = getAnalysis<LazyValueInfoWrapperPass>().getLVI(); > DominatorTree &DT = > getAnalysis<DominatorTreeWrapperPass>().getDomTree(); > LV.printLVI(F,
2017 Aug 09
4
ind variable
This support was removed years ago from indvars. We don't need canonical induction variables any more as all analysis are done on SCEVs. The SCEV generator can transform them even without the need for explicit canonical induction variables. Best, Tobias On Wed, Aug 9, 2017, at 14:23, Anastasiya Ruzhanskaya via llvm-dev wrote: > The files of this strange pass are described here >
2017 Aug 07
2
vrp
Hello, I am trying to figure out, what vrp propagation does in llvm. I tried this program: #include <stdio.h> int main() { int s = 0; int j = 0; for (int i = 0; i < 100; i++) { j = j+i+1; s+=j; } return (s+j); } And got this under optimized version ( I don't want everything to be eliminated) define i32 @main()
2017 Aug 09
2
ind variable
Hello, I have this piece of code: int main() { int m = 0; // int i, j, k; // int N = f()%10; for (int l = 0; l < 1000; l+=4) printf("%d", l); I am sure, that llvm is capable to convert this into canonical induction variable, but even with O3 define i32 @main() #0 { br label %2 ; <label>:1 ; preds
2011 May 21
4
[LLVMdev] getCanonicalInductionVariable
Hi I have the followed code for which I am writing a loop pass. int main() { int i = 0; for (i=0; i<20; i++) { printf ("hello world %d\n", i); } return 0; } In the function runOnLoop, I have the following instruction PHINode *indv = NULL; indv = L->getCanonicalInductionVariable(); However, when I check indv is always set to NULL. Since the code has a canonical
2017 Aug 14
2
PHI nodes and connected ICMp
Hi, On Sun, Aug 13, 2017 at 5:58 AM, Anastasiya Ruzhanskaya via llvm-dev <llvm-dev at lists.llvm.org> wrote: > And still, aren't there any possibilities to find that phi node, that led > SCEV to compute max trip count? So there is no good answer to your question since in most cases SCEV does not directly look at PHI nodes (or expressions based off of the PHI node). It converts
2017 Sep 02
2
getelementptr
No. It would be helpful to understand what you are trying to accomplish overall, which may help people give you details about the best way to accomplish it. For example, if you are trying to understand or recover array indexes from GEP's, that is non-trivial. On Sat, Sep 2, 2017 at 3:53 AM, Anastasiya Ruzhanskaya via llvm-dev < llvm-dev at lists.llvm.org> wrote: > Is there a way
2016 Aug 25
3
Canonicalize induction variables
I just subscribed this group. This is my first time to post a question (not sure if this is a right place for discussion) after I have a brief look at LLVM OPT (dev trunk). I would expect loop simplification and induction variable canonicalization pass (IndVarSimplify pass) should be able to convert the following loops into a simple canonical form, i.e., there is a canonical induction variable
2017 Sep 02
3
getelementptr
Ok, thank you. I have also one question about getelementptr. In different versions of clang I see that sometimes array[i][i] is preceded by two getelementptr instructions and sometimes only by one - with an already complex index. 2017-09-01 12:50 GMT+02:00 David Chisnall <David.Chisnall at cl.cam.ac.uk>: > On 1 Sep 2017, at 11:44, Anastasiya Ruzhanskaya via llvm-dev < > llvm-dev
2016 Oct 16
3
Induction variable identification?
Hi, How does LLVM identify induction variables of a loop? Is the algorithm based on SSA graphs? I have a complicated loop and I need to do some analysis around it. Can anyone please point me to source of identification part? -- *Disclaimer: Views, concerns, thoughts, questions, ideas expressed in this mail are of my own and my employer has no take in it. * Thank You. Madhur D. Amilkanthwar
2017 Jul 17
2
value range propagation
Hello, I wonder if llvm has pure range propagation pass. Is correlated value propagation that one? It seems that it is not directly deals with ranges. Maybe there any passes that simply contain some information about value ranges? Will symbolic value range propagation be done in some time? -------------- next part -------------- An HTML attachment was scrubbed... URL:
2017 Aug 21
2
Combining passes
Hello, this is a question, concerning cmake lists configuration. I am trying to link together two llvm passes, but they still should be as two modules. So: passA - A.so passB - B.so passB should use passA , so I sould use target_link_libraries ( and of course, I have included useAnalysis in passB) . But I can't link libraries that are build as Modules, so I tried to create two libraries at
2017 Dec 10
1
libvirt authentication
Hello, I am currently trying to install certificates for tls. By this time I have got some questions: 1) Is documentation in the web docs up-to-date regarding tls server, client, ca certificates? (actually I have some problems, but maybe this is due to smth has changed in certtools and was not updated in docs, perhaps some more fields are needed now). 2) there is a error in virt-pki-validate :
2017 Aug 10
2
PHI nodes and connected ICMp
Hello, I have one more question about how phi nodes and their corresponding ICmp instructions are associated. maybe it is simple, but at first I thought that we always compare against one of incoming value. Is it true that I can have only two cases: %indvars.iv = phi i64 [ %indvars.iv.next, %1 ], [ 0, %0 ] ... %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond = icmp eq i64