search for: jumpthread

Displaying 20 results from an estimated 88 matches for "jumpthread".

2015 Feb 05
2
[LLVMdev] JumpThreading and @llvm.dbg.declare()
Hi! I have a small issue with the JumpThreading pass (in opt). As described in the code (JumpThreading.cpp), the pass may if certain criteria are fulfilled duplicate the content of a block. If the duplicated block contain a call to @llvm.dbg.declare() you will end up with invalid code as the intrinsic @llvm.dbg.declare() only should occur...
2019 Jan 11
3
LLVM Pass to count reachable BB
Hello, I have code containing conditions and loops. Hence some BB execution are determined at run time depending on condition. Now I want to count only those BB that are always executed irrespective of condition result means reachable. and their execution is evident at compile time. How to do this? Please help Thank You Regards -------------- next part -------------- An HTML attachment was
2020 Feb 03
3
Questions about jump threading optimization and what we can do
Hm. I assumed that JumpThreading would be the primary factor in optimizing code like this. Guess not. I'll need to look into SimplifyCFG to see what prevents it from doing the same thing to the other loop: https://godbolt.org/z/F6NjdG On Mon, Feb 3, 2020 at 3:09 PM Michael Kruse <llvmdev at meinersbur.de> wrote: &gt...
2011 Jul 08
0
[LLVMdev] Missed optimization with indirectbr terminator
...rto Ferraris wrote: > Nella citazione giovedì 7 luglio 2011 19:41:16, John McCall ha scritto: >> On Jul 7, 2011, at 4:33 AM, Carlo Alberto Ferraris wrote: >>> Il 07/07/2011 11:14, Cameron Zwarich ha scritto: >>>> I haven't read the code in detail, but it looks like JumpThreading at least attempts to thread across indirect branches. You can either try to fix it or file a bug with your test case. >>> In the source it says "If the predecessor is an indirect goto, we can't split the edge. <http://llvm.org/docs/doxygen/html/JumpThreading_8cpp_source.html...
2011 Jul 08
4
[LLVMdev] Missed optimization with indirectbr terminator
Nella citazione giovedì 7 luglio 2011 19:41:16, John McCall ha scritto: > On Jul 7, 2011, at 4:33 AM, Carlo Alberto Ferraris wrote: >> Il 07/07/2011 11:14, Cameron Zwarich ha scritto: >>> I haven't read the code in detail, but it looks like JumpThreading at >>> least attempts to thread across indirect branches. You can either try >>> to fix it or file a bug with your test case. >> In the source it says "If the predecessor is an indirect goto, we >> can't split the edge. >> <http://llvm.org/docs...
2008 May 08
2
[LLVMdev] Missing passes
...vm-commits/Week-of-Mon-20080505/062161.html The passes for which you updated the comments are primarily written by: Chris: lib/Transforms/IPO/StripDeadPrototypes.cpp Devang: lib/Transforms/IPO/StructRetPromotion.cpp Chris: lib/Transforms/Scalar/CodeGenPrepare.cpp Chris/Evan: lib/Transforms/Scalar/JumpThreading.cpp Chris: lib/Transforms/Scalar/LoopDeletion.cpp Who should probably review the added comments for accuracy. — Gordon
2015 Aug 23
4
Scaling to many basic blocks
On Sat, Aug 22, 2015 at 11:57 PM, Michael Zolotukhin <mzolotukhin at apple.com> wrote: > Hi, > > Several passes would have troubles with such code (namely, GVN and > JumpThreading). Can you just choose not to run those particular passes? I suppose the big problem would be if there's a problem with the code generation and related stuff like instruction scheduling and register allocation - is that likely to be the case? -------------- next part -------------- An HTML...
2020 Feb 03
2
Questions about jump threading optimization and what we can do
...o., 2. Feb. 2020 um 18:24 Uhr schrieb Karl Rehm via llvm-dev >> >> <llvm-dev at lists.llvm.org>: >> >> > >> >> > Here's a better example. https://godbolt.org/z/fpTyFS >> >> > I don't know what exactly you would need to change in JumpThreading >> to improve this, but I'm open to ideas. >> >> > >> >> > On Sun, Feb 2, 2020 at 12:45 PM Karl Rehm <klrehm123 at gmail.com> >> wrote: >> >> >> >> >> >> Holy crap, I completely missed that. I'm sorry! Th...
2011 Mar 18
0
[LLVMdev] How to integrate an analysis into LVI?
...the client information about which values are constants. Is this true? Second, reading the code I see that the ranges are being computed, but I could not tell if this part of the code is already completely done. Would it be possible to print the ranges of the values computed by LVI? Third, besides JumpThreading.cpp is there any other client that uses LVI? I would like to couple my range analysis ( http://homepages.dcc.ufmg.br/~douglas/projects/RangeAnalysis/RangeAnalysis.paper.pdf) with the LVI interface, so that is why I am interested on it. Kind regards, Douglas On Mon, Mar 14, 2011 at 6:55 PM, D...
2015 Apr 16
3
[LLVMdev] LazyValueInfo.getPredicateAt
Hi, Is it intentional that LazyValueInfo.getPredicateAt doesn't solve for the value and only takes assumptions into account? getPredicateAt gets lattice value from cache using getValueAt call: LVILatticeVal LazyValueInfoCache::getValueAt(Value *V, Instruction *CxtI) { ... LVILatticeVal Result; mergeAssumeBlockValueConstantRange(V, Result, CxtI); ... return Result; } Other
2017 Aug 04
3
[RFC][InlineCost] Modeling JumpThreading (or similar) in inline cost model
...he call site of fn3 is predicated on dst_ptr being null (i.e., if (!dst_ptr) dst_ptr = fn3()), but that code is predicated on a_ptr being non-null. Therefore, we know the condition !dst_ptr is false (because a_ptr == dst_ptr and a_ptr is non-null) and the call to fn3 is dead. I suspect one of JumpThreading, EarlyCSE, or GVN does the elimination after inlining, so that's what I'd like to try and model in the inline cost model. (Note fn2 has multiple call sides and the property that the first and second arguments are equal isn't true for each call site, so something like IPSCCP does...
2015 Feb 24
6
[LLVMdev] Jump Theading/GVN bug - moving discussion to llvm-dev
.... Should unreachable code be allowed to contain nonsense (like instructions that depend on themselves)? To this, I believe the answer is no. We currently permit this, and I think that a lot of the bugs regarding unreachable code some from this. I've yet to hear a good argument why, for example, JumpThreading must produce self-referential instructions in trivially-dead regions. -Hal > > > -Chandler > > > > On Mon, Feb 23, 2015 at 1:04 PM, Romanova, Katya < > Katya_Romanova at playstation.sony.com > wrote: > > > > > > > Hello, > >...
2011 Aug 02
0
[LLVMdev] Multiple successors, single dynamic successor
I'm assuming that you're talking about a situation where this can't be determined statically in the existing LLVM IR, but you know it's true and want to put it in (e.g. you're the one generating LLVM IR). If that's not the case, then see if JumpThreading will do it for you. I'm not familiar with a way to express exactly what you want to say, but are you opposed to just duplicating the block? That is, you could duplicate the block, and have the ith predecessor go to the duplicate which goes to the ith successor. You can use JumpThreading::Th...
2011 Mar 14
2
[LLVMdev] How to integrate an analysis into LVI?
Hi guys, I have an analysis that is able to answer questions like this: given an integer variable, what is the interval of values that this variable can assume during the program's execution? I want to integrate this analysis into LLVM and it seems LVI (Lazy Value Info) is the best place to do this kind of stuff. Can someone give some hints about what I have to do to integrate my analysis
2017 Aug 07
2
[RFC][InlineCost] Modeling JumpThreading (or similar) in inline cost model
...2017 at 23:07 > *To: *Chad Rosier <mcrosier at codeaurora.org > <mailto:mcrosier at codeaurora.org>> > *Cc: *llvm-dev <llvm-dev at lists.llvm.org > <mailto:llvm-dev at lists.llvm.org>> > *Subject: *Re: [llvm-dev] [RFC][InlineCost] Modeling JumpThreading > (or similar) in inline cost model > > On Fri, Aug 4, 2017 at 11:41 AM, Chad Rosier via llvm-dev > <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote: > > On 8/4/2017 2:06 PM, Daniel Berlin wrote: > > A few...
2011 Aug 02
2
[LLVMdev] Multiple successors, single dynamic successor
Suppose I have a bb with N predecessors and N successors. What is, in your opinion, the best way to express that the bb has (dynamically) only one successor (i.e. if coming from the i-th predecessor we will always jump to the i-th successor)? b.r., -- Carlo Alberto Ferraris <cafxx at strayorange.com <mailto:cafxx at strayorange.com>> website/blog
2011 Jul 07
2
[LLVMdev] Missed optimization with indirectbr terminator
Il 07/07/2011 11:14, Cameron Zwarich ha scritto: > I haven't read the code in detail, but it looks like JumpThreading at > least attempts to thread across indirect branches. You can either try > to fix it or file a bug with your test case. In the source it says "If the predecessor is an indirect goto, we can't split the edge. <http://llvm.org/docs/doxygen/html/JumpThreading_8cpp_source.htm...
2015 Aug 24
2
Scaling to many basic blocks
...01:46:12AM +0100, Russell Wallace via llvm-dev wrote: >> On Sat, Aug 22, 2015 at 11:57 PM, Michael Zolotukhin <mzolotukhin at apple.com> >> wrote: >> >>> Hi, >>> >>> Several passes would have troubles with such code (namely, GVN and >>> JumpThreading). >> >> >> Can you just choose not to run those particular passes? I suppose the big >> problem would be if there's a problem with the code generation and related >> stuff like instruction scheduling and register allocation - is that likely >> to be the...
2016 Aug 05
2
Reasoning about results of min and max with a constant
...eeded to recognize 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...
2017 Aug 07
3
[RFC][InlineCost] Modeling JumpThreading (or similar) in inline cost model
...Sean Silva via llvm-dev <llvm-dev at lists.llvm.org> Reply-To: Sean Silva <chisophugis at gmail.com> Date: Friday, 4 August 2017 at 23:07 To: Chad Rosier <mcrosier at codeaurora.org> Cc: llvm-dev <llvm-dev at lists.llvm.org> Subject: Re: [llvm-dev] [RFC][InlineCost] Modeling JumpThreading (or similar) in inline cost model On Fri, Aug 4, 2017 at 11:41 AM, Chad Rosier via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote: On 8/4/2017 2:06 PM, Daniel Berlin wrote: A few notes: I'm a bit surprised IPO copy/constant propagation doesn&...