search for: inductiverangecheckelimination

Displaying 14 results from an estimated 14 matches for "inductiverangecheckelimination".

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 whether do_something will be called, but we can see with our human eyes that...
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 whether do_something will be called, but we can see with our human eyes that...
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>
2016 Apr 29
2
XDEBUG build bots?
...gt; unassignedbugs at nondot.org NEW --- [LoopVersioning] lit test hits invalid > domtree assert w/ XDEBUG <https://llvm.org/bugs/show_bug.cgi?id=27487> > 14:31:56 > 27486 <https://llvm.org/bugs/show_bug.cgi?id=27486> librarie Scalar O > unassignedbugs at nondot.org NEW --- [InductiveRangeCheckElimination] > invalidates domtree and hits asserts w/ XDEBUG > <https://llvm.org/bugs/show_bug.cgi?id=27486> 14:29:00 > 27485 <https://llvm.org/bugs/show_bug.cgi?id=27485> librarie Backend: > unassignedbugs at nondot.org NEW --- [X86] Codegen/X86/selectiondag-cse.ll > hits assert wh...
2016 Apr 22
2
XDEBUG build bots?
Yeah, they are just triggered by lit check tests. I’ll file some bugs today, though it looks like Quentin may have already filed bugs for some of these. -- Geoff Berry Employee of Qualcomm Innovation Center, Inc. Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project From: Daniel Berlin [mailto:dberlin at dberlin.org] Sent: Friday,
2015 Aug 20
2
loop unrolling introduces conditional branch
...>7 will do not have the "add", > "icmp" and "br" instructions because these BBs can be merged together. > > How can I achieve this? Thanks. > > One - rather heavy weight - way to do this would be to add the -irce pass > after the loop unroll step. InductiveRangeCheckElimination will introduce > a post loop so as to eliminate the range checks in the inner loop. This > might not be the ideal transformation for this code, but it might get you > closer to what you want. > > A couple of caveats: > - 3.5 isn't recent enough to have a stable IRCE. Downloa...
2018 Mar 09
1
Loop distribute / versioning to remove control flow
Hi, Florian has been working on loop peeling to remove control flow from loop bodies in https://reviews.llvm.org/D43876. For larger constants or other loop invariant bounds, such like: for (unsigned i = 0; i; i < 1000; ++i) { if (i < M) ... something else ... something else } The loop could be split into two, like so: Min = min(1000, M); unsigned i; for (i = 0; i; i < Min;
2015 Aug 20
2
loop unrolling introduces conditional branch
Hi, I want to use loop unrolling pass, however, I find that loop unrolling will introduces conditional branch at end of every "unrolled" part. For example, consider the following code *void foo( int n, int array_x[])* *{* * for (int i=0; i < n; i++)* * array_x[i] = i; * *}* Then I use this command "opt-3.5 try.bc -mem2reg -loops -loop-simplify -loop-rotate -lcssa
2015 Aug 21
2
loop unrolling introduces conditional branch
...>> "icmp" and "br" instructions because these BBs can be merged together. >>> >>> How can I achieve this? Thanks. >>> >>> One - rather heavy weight - way to do this would be to add the -irce >>> pass after the loop unroll step. InductiveRangeCheckElimination will >>> introduce a post loop so as to eliminate the range checks in the inner >>> loop. This might not be the ideal transformation for this code, but it >>> might get you closer to what you want. >>> >>> A couple of caveats: >>> - 3.5 isn'...
2017 Dec 21
2
Pass ordering - GVN vs. loop optimizations
Hi, This is Ariel from the Rust team again. I am having another pass ordering issue. Looking at the pass manager at https://github.com/llvm-mirror/llvm/blob/7034870f30320d6fbc74effff539d946018cd00a/lib/Transforms/IPO/PassManagerBuilder.cpp (the early SimplifyCfg now doesn't sink stores anymore! I can't wait until I can get to use that in rustc!) I find that the loop optimization group
2018 Feb 22
3
Loop splitting as a special case of unswitch
For the example code below, int L = M + 10; for (k = 1 ; k <=L; k++) { dummy(); if (k < M) dummy2(); } , we can split the loop into two parts like : for (k = 1 ; k != M; k++) { dummy(); dummy2(); } for (; k <=L; k++) { dummy(); } By splitting the loop, we can remove the conditional block in the loop and indirectly increase vectorization
2016 Mar 22
2
GSoC and SAFECode
John Criswell wrote: > If you're interested in SAFECode, the first step is to get SAFECode > working with a newer version of LLVM. A Master's student did some > work on this last summer with LLVM 3.7 but didn't finish. It would > now need to be updated to LLVM 3.8 (though I suppose a completed LLVM > 3.7 port would be fine with me). > > After that, there are
2015 Aug 22
2
loop unrolling introduces conditional branch
...ause these BBs can be merged >>>>> together. >>>>> >>>>> How can I achieve this? Thanks. >>>>> >>>>> One - rather heavy weight - way to do this would be to add the -irce >>>>> pass after the loop unroll step. InductiveRangeCheckElimination will >>>>> introduce a post loop so as to eliminate the range checks in the inner >>>>> loop. This might not be the ideal transformation for this code, but it >>>>> might get you closer to what you want. >>>>> >>>>> A coupl...
2015 Jul 29
1
[LLVMdev] Error when i am using command make -j4 command in cygwin to compile safecode
.../NIKHILREDDY/WORK/LLVM_OBJ/lib/CodeGen/SelectionDAG' make[3]: Entering directory '/home/NIKHILREDDY/WORK/LLVM_OBJ/lib/CodeGen/AsmPrinter' llvm[2]: Compiling TargetTransformInfo.cpp for Release+Asserts build llvm[3]: Compiling ARMException.cpp for Release+Asserts build llvm[3]: Compiling InductiveRangeCheckElimination.cpp for Release+Asserts build llvm[2]: Compiling Trace.cpp for Release+Asserts build llvm[3]: Compiling AddressPool.cpp for Release+Asserts build llvm[2]: Compiling TypeBasedAliasAnalysis.cpp for Release+Asserts build llvm[3]: Compiling AsmPrinter.cpp for Release+Asserts build llvm[3]: Compiling Ju...