search for: rpass

Displaying 20 results from an estimated 61 matches for "rpass".

Did you mean: pass
2019 May 02
2
llvm is illegally vectorizing with a recurrence on skylake
...ies[1024]; // int shift[1024]; int d; for(d=1;d!=digits-1;++d) { int *t; one(in,in+n,shift[d],indicies[d],dst); t=in,in=dst,dst=t; } #ifndef NO_TWO two(in,in+n,shift[d],indicies[d],idx); #endif } /*****************************************************************/ clang -S -O2 -Rpass=loop-vectorize small.c -march=skylake-avx512 small.c:6:3: remark: vectorized loop (vectorization width: 16, interleaved count: 1) [-Rpass=loop-vectorize] do { ^ I believe the problem to be a issue with dependency information getting destroyed because if you remove the two() function (or compi...
2018 Feb 12
1
Pattern not recognized as reduction
...ted by vectorizer says the following :- REMARKS_1 ------------------------------------------------------------ ------------------------------------------------------------------- test6.c:8:11: remark: loop not vectorized: value that could not be identified as reduction is used outside the loop [-Rpass-analysis=loop- vectorize] sum[0] += sum[i-1]; ^ test6.c:6:3: remark: loop not vectorized: unsafe dependent memory operations in loop. Use #pragma loop distribute(enable) to allow loop distribution to attempt to isolate the offending operations into a separate loop [-Rpass-analys...
2018 Jun 05
2
How to get optimization remarks while testing with lnt in llvm
Hi, I'm new to llvm and am trying to run benchmarks from the test-suite using lnt to check loop-vectorization for various benchmarks. Test are compiling and executing fine, but I am not getting optimization remarks while using flags like -Rpass-missed=loop-vectorize and -Rpass-analysis=loop-vectorize I've tried running it like this: lnt runtest test-suite --sandbox SANDBOX --cc /usr/local/bin/clang --test-suite ~/llvm_tests/llvm-test-suite/ --only-test SingleSource/UnitTests/Vectorizer/ --only-compile --use-lit ~/llvm/utils/lit/...
2018 Aug 14
2
optimization remarks
...s that are not vectorized - but could be - on my target by finding other targets doing this successfully. With some luck, there might be something in the Target files that could be fixed with improved vectorization as a result... I would like to do this with the optimization remarks enabled: -Rpass=loop-vectorize, etc. Since cross-compiling benchmarks seems tricky to me at the moment, my idea was to first run the front end, and then run the optimizers for different targets. However, when I pass -save-temps to clang there are no remarks emitted at all any more... So in effect I can only ge...
2018 Sep 20
2
Vectorization width not correct using #pragma clang loop vectorize_width
...",corr[0]); printf("Corr[(M*M)-1]: %lf\n",corr[(M*M)-1]); printf("Corr[0]: %lf\n",data[0]); printf("Corr[(M*M)-1]: %lf\n",data[(M*M)-1]); return 0; } *i m getting following output when i compiled;* *clang -O3 correlation.c -Rpass=loop-vectorize -emit-llvm -march=knl -S -o 1.llcorrelation.c:38:9: remark: vectorized loop (vectorization width: 8, interleaved count: 4) [-Rpass=loop-vectorize] for (j = 0; j < M; j++) ^correlation.c:41:5: remark: vectorized loop (vectorization width: 8, interleaved count: 4) [-...
2016 Mar 07
3
Profile-based inlining status
...ms PGO (profile-guided optimizations) by using the instrumentation-based profile build (-fprofile-instr-generate and -fprofile-instr-use). However, I found there is no difference in inlining behaviors between with and without PGO for a few spec benchmarks by checking the emit optimization reports (-Rpass=inline -Rpass-missed=inline -Rpass-analysis=inline). Also, the profile information collected contains only block counters, not call counters. This seems to indicate that the profile-based inlining is not supported yet (my LLVM/Clang is 3.9.0, mid Feb trunk). Is this the case? The talk in the LLVM...
2014 Jun 26
7
[LLVMdev] -gcolumn-info and PR 14106
For -Rpass, and other related uses, I am looking at enabling column info by default. David pointed me at PR 14106, which seems to be the original motivation for introducing -gcolumn-info. However, I am finding no differences when using it on this test. I've tried building with/without -gcolumn-info and f...
2016 Oct 09
3
On Loop Distribution pass
Dear community, Our team at IITH have been experimenting with loop-distribution pass in LLVM. We see the following results on few benchmarks. clang -O3 -mllvm -enable-loop-distribute -Rpass=loop-distribute file.c clang -O3 -mllvm -enable-loop-distribute -Rpass-analysis=loop-distribute file.c TORCH <http://crd.lbl.gov/departments/computer-science/PAR/research/previous-projects/torch-testbed/> : There are nearly 488 loops in this benchmark. LLVM was not able to distribute any...
2020 Sep 01
2
Vectorization of math function failed?
I've tried to do: clang++ -O3 -march=native -mtune=native \ -Rpass=loop-vectorize,slp-vectorize -Rpass-missed=loop-vectorize,slp-vectorize -Rpass-analysis=loop-vectorize,slp-vectorize \ -ffast-math -ffp-model=fast -ffp-exception-behavior=ignore -ffp-contract=fast \ -c -o vec.o vec.cc But I've got no feedback. -- Alexandre Bique
2020 Jun 24
2
Loop vectorization and unsafe floating point math
...nt-optimizations it says " Loop hints can be specified before any loop and will be ignored if the optimization is not safe to apply.". But given this example (see also https://godbolt.org/z/fzRHsp ) //------------------------------------------------------------------ // // clang -O3 -Rpass=loop-vectorize -Rpass-analysis=loop-vectorize #include <stdio.h> #include <stdint.h> double v_1 = -902.30847021; double v_2 = -902.30847021; int main() { #pragma clang loop vectorize_width(2) unroll(disable) for (int i = 0; i < 16; ++i) { v_1 = v_1 * 430.33975544; }...
2016 May 11
4
Filter optimization remarks by the hotness of the code region
...>> I think would be a really useful feature to have. I don't think >>> that the backend should be responsible for filtering, but should >>> pass the relative hotness information to the frontend. Given that >>> these diagnostics are not just going to be used for -Rpass and >>> friends, but also for generating reports by other tools (see the >>> discussion around D19678, for example), I think it is important to >>> allow the frontend to filter. >> >> I am not sure I follow, can you please elaborate. Are you saying >>...
2016 May 04
4
Filter optimization remarks by the hotness of the code region
This idea came up a few times recently [1][2] so I’d like start prototyping it. To summarize, we can emit optimization remarks using the -Rpass* options. These are currently emitted by optimizations like vectorization[3], unrolling, inlining and since last week loop distribution. For large programs however this can amount to a lot of diagnostics output to sift through. Filtering this by the hotness of the region can help to focus the us...
2016 Oct 10
2
On Loop Distribution pass
...ay, October 9, 2016 12:09:01 PM > Subject: [llvm-dev] On Loop Distribution pass > > Dear community, > > Our team at IITH have been experimenting with loop-distribution pass in LLVM. We see the following results on few benchmarks. > > clang -O3 -mllvm -enable-loop-distribute -Rpass=loop-distribute file.c > clang -O3 -mllvm -enable-loop-distribute -Rpass-analysis=loop-distribute file.c > > > TORCH <http://crd.lbl.gov/departments/computer-science/PAR/research/previous-projects/torch-testbed/>: > There are nearly 488 loops in this benchmark. LLVM was not a...
2020 Sep 01
2
Should llvm optimize 1.0 / x ?
Hi Quentin, You are correct, I could manage to get clang to use vrcpps, but not in a satisfying way: clang++ -O3 -march=native -mtune=native \ -Rpass=loop-vectorize -Rpass-missed=loop-vectorize -Rpass-analysis=loop-vectorize \ -ffast-math -ffp-model=fast -ffp-exception-behavior=ignore -ffp-contract=fast \ -c -o vec.o vec.cc 0000000000000140 <_Z4fct4Dv4_f>: 140: c5 f8 53 c8 vrcpps %xmm0,%xmm1 144: c4 e2 79 18 15 00 00 vbroadcast...
2015 Feb 09
3
[LLVMdev] aarch64 status for generating SIMD instructions
% clang -S -O3 -mcpu=cortex-a57 -ffast-math -Rpass-analysis=loop-vectorize dot.c dot.c:15:1: remark: loop not vectorized: value that could not be identified as reduction is used outside the loop [-Rpass-analysis=loop-vectorize] } ^ dot.c:15:1: note: could not determine the original source location for :0:0 I found “llvm-as < /dev/null | l...
2017 Oct 18
2
How to emit opt report when using LTO
Hi, I'm using clang frontend. I'm interested in some particular hot loop in my code and I emit a report from vectorizer optimizations passes. I receive nice output if passing -Rpass* flags as long as I'm building without LTO? But with -flto it just prints nothing. Is there a way to emit opt reports when using LTO? For now I can only approximate about whether my the loop will be vectorized. I remove -flto and check opt reports. But as I understand, decision about loop vect...
2016 May 11
2
Filter optimization remarks by the hotness of the code region
...l.gov> wrote: > > Hi Adam, > > I think would be a really useful feature to have. I don't think that the backend should be responsible for filtering, but should pass the relative hotness information to the frontend. Given that these diagnostics are not just going to be used for -Rpass and friends, but also for generating reports by other tools (see the discussion around D19678, for example), I think it is important to allow the frontend to filter. I am not sure I follow, can you please elaborate. Are you saying that for example in the listing use case we don’t want the filtere...
2016 Mar 02
4
Proposal for function vectorization and loop vectorization with function calls
...tion in it. #include<stdio.h> extern float dowork(float *a, int k); float a[4096]; int main() { int k; #pragma clang loop vectorize(enable) for (k = 0; k < 4096; k++) { a[k] = k * 0.5; a[k] = dowork(a, k); } printf("passed %f\n", a[1024]); } sh-4.1$ clang -c -O2 -Rpass=loop-vectorize -Rpass-missed=loop-vectorize -Rpass-analysis=loop-vectorize loopvec.c loopvec.c:15:12: remark: loop not vectorized: call instruction cannot be vectorized [-Rpass-analysis] a[k] = dowork(a, k); ^ loopvec.c:13:3: remark: loop not vectorized: us...
2016 Jun 27
0
Filter optimization remarks by the hotness of the code region
...hink would be a really useful feature to have. I don't think >>>> that the backend should be responsible for filtering, but should >>>> pass the relative hotness information to the frontend. Given that >>>> these diagnostics are not just going to be used for -Rpass and >>>> friends, but also for generating reports by other tools (see the >>>> discussion around D19678, for example), I think it is important to >>>> allow the frontend to filter. >>> >>> I am not sure I follow, can you please elaborate. Are...
2019 Oct 02
2
vectorize.enable
...still in the IR after all passes that > > should have transformed them have ran. That is, it does not know why > > it is still there -- it could be because the LoopVectorize pass is not > > even in the pipeline -- and we cannot be more specific in the message. > > However, -Rpass-missed=loop-vectorize may give more information. > > As I recall, there is some trade-off here because it's hard for a > transformation to know that it's last - either the last run of that > particular transformation in the pipeline or the last transformation in > the pipelin...