search for: branchprobabilityinfo

Displaying 20 results from an estimated 37 matches for "branchprobabilityinfo".

2018 Apr 10
0
InductiveRangeCheckElimination and BranchProbabilityInfo
Adding Maxim On Apr 9, 2018, at 10:06 AM, Sam Parker via llvm-dev <llvm-dev at lists.llvm.org<mailto:llvm-dev at lists.llvm.org>> wrote: Hi, extractRangeChecksFromBranch uses BranchProbabilityInfo to decide whether its worth trying the InductiveRangeCheckElimination transformation. For the following example: void split() { for (int i = 0; i < 100; ++i) { if (i < 99) do_something() else do_something_else() } } But the reported BPI is reported as 50/50 to whethe...
2018 Apr 09
3
InductiveRangeCheckElimination and BranchProbabilityInfo
Hi, extractRangeChecksFromBranch uses BranchProbabilityInfo to decide whether its worth trying the InductiveRangeCheckElimination transformation. For the following example: void split() { for (int i = 0; i < 100; ++i) { if (i < 99) do_something() else do_something_else() } } But the reported BPI is reported as 50/50 to whethe...
2011 Aug 31
2
[LLVMdev] Branch transformation with branch-weight metadata
Hello :) I am looking around __builtin_expect() directive for optimization. ( http://llvm.org/docs/BranchWeightMetadata.html ) Since it is not included in v2.9, I am searching about it on svn trunk. I found that the lowering phase generates branch-weight metadata node for that directive. However, I can't find any code related to the metadata even in the branch transformation code. IMHO, in
2015 Apr 24
2
[LLVMdev] Loss of precision with very large branch weights
...frequencies, we don't really need 64bits, as they're just > comparative values that can be squished into 32bits. It's the branch > weights being 32 bit quantities that are throwing off the calculations. Do you still see the issue after fixing bhe bug (limit without scaling) in BranchProbabilityInfo::calcMetadataWeights ? David > > > Diego.
2011 Jun 04
3
[LLVMdev] [llvm-commits] Branch Probability
...ose edge weights, because they have no independent meaning, we need a richer API. Example: BasicBlock *getHotSucc(BasicBlock *BB); bool isEdgeHot(BasicBlock *pred, BasicBlock *succ); The API will be implemented entirely using fixed point arithmetic. Example: class BranchProbability { friend BranchProbabilityInfo; unsigned numerator; unsigned denominator; BranchProbability(...); // no public ctor ... }; class BranchProbabilityInfo { static BranchProbability HotProb; static initProb(); ... }; void BranchProbabilityInfo::initProb() { HotProb = BranchProbability(4, 5); } bool isEdgeHot(src,...
2012 Jul 15
3
[LLVMdev] FYI: Planning to remove ProfileInfo and related passes from LLVM
...issues with the current system: my original proposal was > written without knowledge of the limitations. This is why this list > hasn't heard much from me yet. > It would be better to actually email the list with the problems you are hitting sooner. We would have directed you to the BranchProbabilityInfo and BlockFrequencyInfo infrastructure that is now actively in use by several optimization passes in LLVM. Can you start a thread with what your specific goals are? The only email I have from you is from May 1st, which was your project outline for the GSoC application, to which Evan responded, but...
2016 Jul 15
2
Optimizations using profile information
Hi, Which optimization passes use profile information? http://llvm.org/docs/Passes.html seems to suggest only block placement uses it, is that correct? Emma. -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160715/46cc3ccc/attachment.html>
2012 Jul 15
0
[LLVMdev] FYI: Planning to remove ProfileInfo and related passes from LLVM
Hi Chandler, I'm a GSoC student working on profiling support (mentor CC'ed). I'm no stranger to the issues with the current system: my original proposal was written without knowledge of the limitations. This is why this list hasn't heard much from me yet. I would like to continue working on profiling support but I'm not attached to ProfileInfo and wouldn't be
2012 Jul 16
0
[LLVMdev] FYI: Planning to remove ProfileInfo and related passes from LLVM
...stranger to the issues with the current system: my original proposal was written without knowledge of the limitations. This is why this list hasn't heard much from me yet. It would be better to actually email the list with the problems you are hitting sooner. We would have directed you to the BranchProbabilityInfo and BlockFrequencyInfo infrastructure that is now actively in use by several optimization passes in LLVM. Can you start a thread with what your specific goals are? The only email I have from you is from May 1st, which was your project outline for the GSoC application, to which Evan responded, but...
2012 Jul 16
2
[LLVMdev] RFC: Profiling Enhancements (GSoC)
...tadata by profiling At the absolute minimum this will require writing a new profile loader which will set branch weight metadata based on profiling data. #1 Optionally use profiling support to heuristics within: * Loop unrolling * Loop unswitching * Inliner The existing BranchProbabilityInfo, and BlockFrequencyInfo are not used in Transforms/*/* at all, just in CodeGen/*. Is there a reason for this, or is it quite possible to use them in Transforms/*/* passes? The original plan was to test these using ProfileEstimator, now the static heuristics within BranchProbability could be u...
2012 Jul 15
4
[LLVMdev] FYI: Planning to remove ProfileInfo and related passes from LLVM
Hello folks, I'd like to remove all of the old and defunct profile info passes from LLVM. These have been almost entirely supplanted by the BranchProbability and BlockFrequency systems, which are actually on by default, and in use in optimization passes. The old system is not on, and hasn't been touched in years except to do minor build fixes and updates. As far as I'm aware, the
2012 Oct 08
0
[LLVMdev] machine branch probability info
Hi, Anyone working to incorporate "real" profiles to lib/CodeGen/MachineBranchProbabilityInfo.cpp using profile-metadata-loader? We could use something similar to llvm's BranchProbabilityInfo. Ram -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20121008/cc8279c9/attachment.html>
2012 Dec 12
1
[LLVMdev] ProfileEstimator inconsistency
Hello all, I was trying to use the profile estimator and ran into the following issue. An initial weight is assigned to a function entry in lib/Analysis/ProfileEstimator.cpp on line 340. In the code this weight is pow(2.0, 32.0) whereas the comment three lines up explains that this should be 1.0 Can someone fix this in trunk? (replacing 'pow(2.0, 32.0)' with '1.0' worked for
2013 Mar 29
1
[LLVMdev] function pass to visit BB bottom-up order
Hello llvmdevs, In a function pass, I need to visit all the basic blocks in bottom-up order (the exact opposite of ReversePostOrderTraversal). I noticed some APIs like po_iterator but wasn't able to figure out an example usage for this on web. Any pointers/suggestions are highly appreciated. Thanks, Ananth -------------- next part -------------- An HTML attachment was scrubbed... URL:
2014 Feb 02
5
[LLVMdev] [RFC] BlockFrequency is the wrong metric; we need a new one
Right now, all profile information is funneled through two analysis passes prior to any part of the optimizer using it. First, we have BranchProbabilityInfo, which provides a simple interface to the simplest form of profile information: local and relative branch probabilities. These merely express the likelihood of taking one of a mutually exclusive set of exit paths from a basic block. They are very simple, and the foundation of the profile informatio...
2015 Dec 07
4
[LLVMdev] Path forward on profile guided inlining?
(Resending after removing llvmdev at cs.uiuc.edu and using llvm-dev at lists.llvm.org) On Mon, Dec 7, 2015 at 3:08 PM, Easwaran Raman <eraman at google.com> wrote: > Hi Philip, > > Is there any update on this? I've been sending patches to get rid of the > callee hotness based inline hints from the frontend and move the logic to > the inliner. The next step is to use
2014 Oct 02
2
[LLVMdev] Autotuning parameters/heuristics within LLVM
Hi, I am planning to begin a project to explore the space of tuning LLVM internals in an effort to increase performance. I am wondering if anyone can point to me any parameterizations, heuristics, or priorities functions within LLVM that can be tuned/adjusted. So far, I'm considering BranchProbabilityInfo and InlineCost. Does anyone have any other suggestions? Thanks, Robert
2012 Jul 17
0
[LLVMdev] RFC: Profiling Enhancements (GSoC)
...um this will require writing a new profile loader > which will set branch weight metadata based on profiling data. > > > #1 Optionally use profiling support to heuristics within: > * Loop unrolling > * Loop unswitching > * Inliner > > The existing BranchProbabilityInfo, and BlockFrequencyInfo are not used > in Transforms/*/* at all, just in CodeGen/*. Is there a reason for > this, or is it quite possible to use them in Transforms/*/* passes? The > original plan was to test these using ProfileEstimator, now the static > heuristics within BranchPr...
2015 Apr 24
3
[LLVMdev] Loss of precision with very large branch weights
yes -- for count representation, 64 bit is needed. The branch weight here is different and does not needs to be 64bit to represent branch probability precisely. David On Fri, Apr 24, 2015 at 12:21 PM, Smith, Kevin B <kevin.b.smith at intel.com> wrote: > FWIW. Intel compiler's profile instrumentation uses 64 bit integer counters. > We wrestled with similar problems for a long
2019 Mar 04
2
RFC: Getting ProfileSummaryInfo and BlockFrequencyInfo from various types of passes under the new pass manager
...ntially invalidates the analysis, >> so you have to rerun your analysis again and again. Hence instead of >> saving on compile time it ends up increasing it. >> > > Exactly. > > >> I have hit this issue somewhat recently with dependency of loop passes on >> BranchProbabilityInfo. >> (some loop passes, like IRCE can use it for profitability analysis). >> > The only solution that appears to be reasonable there is to teach all the >> loops passes that need to be pipelined >> to preserve BPI (or any other module/function-level analyses) similar to &g...