search for: ivusers

Displaying 20 results from an estimated 24 matches for "ivusers".

2009 May 13
3
[LLVMdev] MSVC compile error with trunk
...ng issues, here are the errors: Opt: 30> Creating library R:\SDKs\llvm\trunk_VC8_building\lib\Debug\opt.lib and object R:\SDKs\llvm\trunk_VC8_building\lib\Debug\opt.exp 30>LLVMScalarOpts.lib(IndVarSimplify.obj) : error LNK2019: unresolved external symbol "public: bool __thiscall llvm::IVUsers::AddUsersIfInteresting(class llvm::Instruction *)" (?AddUsersIfInteresting at IVUsers@llvm@@QAE_NPAVInstruction at 2@@Z) referenced in function "public: virtual bool __thiscall `anonymous namespace'::IndVarSimplify::runOnLoop(class llvm::LoopBase<class llvm::BasicBlock> *,class...
2011 Sep 12
1
[LLVMdev] IVUsers (LoopPass) analysis in a ModulePass?
Hi Tim, > From: Tim Creech <tcreech at umd.edu> > Subject: [LLVMdev] IVUsers (LoopPass) analysis in a ModulePass? > Date: September 1, 2011 11:46:28 AM PDT > To: llvmdev at cs.uiuc.edu > > Hi all, > I have a loadable ModulePass which does transformations, and I would like to > use IVUsers analysis within it. I noticed when I try to do this (via > the...
2017 Sep 13
2
IVUsers pass is fragile. Is this okay? How can it be resolved?
Hi all, I’ve most recently been grappling with a difficult to reproduce bug. I’ve traced the source of the difficulty in reproduction to the IVUsers analysis pass that is used by Loop Strength Reduction. Specifically, the IVUsers pass’s output is very sensitive to both the use list ordering of the instructions that it is looking at and the ordering of the Phi nodes in the header block of the loop that it’s analyzing. I would like to resolve thi...
2017 Sep 15
2
IVUsers pass is fragile. Is this okay? How can it be resolved?
...i64 %3 to i32 %5 = sub i32 %1, %4 %iv.inc = add i64 %iv, 1 store i64 %iv.inc, i64* %addr, align 8 br i1 undef, label %loop, label %exit exit: ret void ; uselistorder directives ---- ; uselistorder i64 %iv, {2, 1, 0} } — … snip So, to get back to the original questions: 1) What exactly is IVUsers supposed to be finding? For instance, in the example above, what would be the ideal/correct set of IVUsers that the analysis should be finding? I don't have a good answer to this question, other than the obvious one (that it's supposed to find all values that have interesting SCEV expressi...
2017 Sep 16
0
IVUsers pass is fragile. Is this okay? How can it be resolved?
...>>>> ; uselistorder directives ---- >>>>> ; uselistorder i64 %iv, {2, 1, 0} >>>>> } >>>>> — >>> >>> … snip >>> >>>>> So, to get back to the original questions: >>>>> 1) What exactly is IVUsers supposed to be finding? For instance, >>>>> in the example above, what would be the ideal/correct set of >>>>> IVUsers that the analysis should be finding? >>>> >>>> I don't have a good answer to this question, other than the obvious >...
2017 Sep 14
2
IVUsers pass is fragile. Is this okay? How can it be resolved?
...i64 %3 to i32 %5 = sub i32 %1, %4 %iv.inc = add i64 %iv, 1 store i64 %iv.inc, i64* %addr, align 8 br i1 undef, label %loop, label %exit exit: ret void ; uselistorder directives ---- ; uselistorder i64 %iv, {2, 1, 0} } — … snip So, to get back to the original questions: 1) What exactly is IVUsers supposed to be finding? For instance, in the example above, what would be the ideal/correct set of IVUsers that the analysis should be finding? I don't have a good answer to this question, other than the obvious one (that it's supposed to find all values that have interesting SCEV expressi...
2012 Mar 17
1
[LLVMdev] [llvm-commits] Review Request: Use SmallPtrSetImpl instead of SmallPtrSet in funciton IVUsers::AddUsersIfInteresting
...instead of pass something like SmallPtrSet<T, 100>. > Please check in, and you can simultaneously fix the polly branch. Temporary fixed by passing a dummy set. > > Incidentally, the only reason I didn't hide the SmallPtrSet argument behind the API is that all the callers outside IVUsers will be removed from the codebase soon. So which function is supposed to call by outside caller? > > -Andy best regards ether
2011 Sep 01
0
[LLVMdev] IVUsers (LoopPass) analysis in a ModulePass?
Hi all, I have a loadable ModulePass which does transformations, and I would like to use IVUsers analysis within it. I noticed when I try to do this (via the usual addRequired<IVUsers>() and getAnalysis<IVUsers>(*F)), opt fails an assert: opt: /home/tcreech/build/llvm-2.9/include/llvm/PassAnalysisSupport.h:239: AnalysisType& llvm::Pass::getAnalysisID(const void*, llvm::Functio...
2009 May 13
0
[LLVMdev] MSVC compile error with trunk
On Tue, May 12, 2009 at 11:55 PM, Chris Lattner <clattner at apple.com> wrote: > Dan, can you add IVUsers.cpp to the appropriate cmakefile? > > -chris > > > On May 12, 2009, at 10:54 PM, OvermindDL1 wrote: > >> On Tue, May 12, 2009 at 11:40 PM, Chris Lattner <clattner at apple.com> >> wrote: >>> >>> On May 12, 2009, at 10:24 PM, OvermindDL1 wrote: &...
2015 Jul 01
3
[LLVMdev] Deriving undefined behavior from nsw/inbounds/poison for scalar evolution
----- Original Message ----- > From: "Bjarke Roune" <broune at google.com> > To: "Jingyue Wu" <jingyue at google.com> > Cc: llvmdev at cs.uiuc.edu > Sent: Tuesday, June 30, 2015 8:16:13 PM > Subject: Re: [LLVMdev] Deriving undefined behavior from nsw/inbounds/poison for scalar evolution > > Hi Adam, > > Jingyue is right. We need to keep
2014 Jan 22
2
[LLVMdev] Why should we have the LoopPass and LoopPassManager? Can we get rid of this complexity?
As came up recently in other threads, loop passes really get in the way. Here are some of the ways: - There is only one Loop analysis pass - IVUsers. It seems unlikely that the loop nest walk is critical to computing this or preserving it. - Almost all of the things we think of as "required" and dependencies are actually *transforms* that canonicalize the form of a loop into particular shapes. - Because LoopPasses are nested inside...
2015 Jul 01
2
[LLVMdev] Deriving undefined behavior from nsw/inbounds/poison for scalar evolution
...efit to you get from listing i64 as a legal integer width in > the DataLayout for NVPTX? > > -Hal > > LSR only considers legal widths, so I think that then we could not > generate a 64 bit induction variable to get a pointer induction > variable if we make 64 bit illegal. From IVUsers.cpp: I understand, but LSR is run very late, and already considers various target-specific costs (addressing modes, etc.). LSR can be fixed easily if that's the only relevant issue (and maybe LSR should be doing this anyway for 64-bit types on 32-bit systems?). Do you get any benefit from the...
2010 Jun 12
0
[LLVMdev] experimenting with partial evaluation
Good evening, Pierre. Here is an example to you. attached. run with -disable-lazy-comilation. It is *as-is* for Win32 but might be applicable to *-linux-elf more smartly. It does get llvm::Function* by function ptr(not name!), and clone a specialized function, and execute specialized one in the same context as parent lli. > - In a running program, can I get pointers to the llvm Module that
2011 Dec 29
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ions in LLVM. I personally always assumed that a transformation class will only be instantiated and used within a single thread and in case of multiple threads, multiple class instances would be created. The pattern of assigning analysis results to object variables is common (e.g. lib/Analysis/IVUsers.cpp). So we should be able to use it. I personally do not have any strong opinion about the other top-level maps. Just decide yourself what is easier to read. > 2. I have not (yet) changed the types of the maps from holding Value* to > Instruction*. Doing so would eliminate a few casts, bu...
2010 Jun 11
2
[LLVMdev] experimenting with partial evaluation
Hello ! I wanted to experiment with partial evaluation and llvm seems to be the right tool for this, but since I'm new to it of course I'm a bit lost ! I'll try to explain what I want to do in the simplest possible way : I have a C program. In this program, there is a function f( a,b ). I have a value A for a. I want to specialise f() so I get a function fA( b ) which is the same as
2014 Jan 22
3
[LLVMdev] Why should we have the LoopPass and LoopPassManager? Can we get rid of this complexity?
.... We can instead have LCSSA verify the specific loop it is processing which will give us the same safety guarantees. Does that sound OK? That will let me do the following: 1) Hoist LoopSimplify to a function pass 2) Hoist LCSSA to a function pass 3) Make the LoopVectorizer a function pass 4) Make IVUsers a utility of LSR, run on-demand for the loop that LSR is processing (no pass manager involvement) 5) Make LSR a function pass As a consequence of this, we will actually fix the long-standing issue of LoopSimplify vs. ScalarEvolution, and cut the number of runs of LoopSimplify and LCSSA by half (!!...
2011 Dec 29
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...ly always assumed that a transformation class will only be > instantiated and used within a single thread and in case of multiple > threads, multiple class instances would be created. > > The pattern of assigning analysis results to object variables is common > (e.g. lib/Analysis/IVUsers.cpp). So we should be able to use it. Fair enough; I'll make the change. > I > personally do not have any strong opinion about the other top-level > maps. Just decide yourself what is easier to read. > > > 2. I have not (yet) changed the types of the maps from holding Val...
2014 Jan 22
2
[LLVMdev] Why should we have the LoopPass and LoopPassManager? Can we get rid of this complexity?
On Wed, Jan 22, 2014 at 12:33 AM, Andrew Trick <atrick at apple.com> wrote: > > There appear to be two chunks of "functionality" provided by loop passes: > > > > 1) A worklist of loops to process. This is very rarely used: > > 1.1) LoopSimplify and LoopUnswitch add loops to the queue. > > I’m making this up without much thought, but we may benefit
2010 Oct 01
2
[LLVMdev] CMake "sudo make install" & headers
...Analysis/DomPrinter.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/DominatorInternals.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/Dominators.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/FindUsedTypes.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/IVUsers.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/InlineCost.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/InstructionSimplify.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/Interval.h -- Installing: /usr/local/llvm-2.8/include/llvm/Analysis/IntervalIterator.h -- I...
2010 Oct 01
0
[LLVMdev] CMake "sudo make install" & headers
On Thu, Sep 30, 2010 at 3:08 PM, Samuel Williams <space.ship.traveller at gmail.com> wrote: > Hi, > > I might just be doing something stupid, but when I do > > $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/llvm-2.8 -DCMAKE_BUILD_TYPE=Release .. > $ sudo make install > > I don't get the expected headers in >        /usr/local/llvm-2.8/include/llvm > > It is