Displaying 20 results from an estimated 400 matches similar to: "llvm is illegally vectorizing with a recurrence on skylake"
2018 Aug 14
2
optimization remarks
Hi,
I am trying to compare the loop vectorizers effectiveness for different
targets relative to each other. That way, I am hoping to find loops 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
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
2016 Mar 07
3
Profile-based inlining status
Hello,
I'm learning how LLVM performs 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).
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 found almost no difference in compile time (+0.4%):
$ /usr/bin/time clang -w -fno-builtin
2018 Feb 12
1
Pattern not recognized as reduction
Reduction Not Captured By LLVM
CODE_1
------------------------------------------------------------
------------------------------------------------------------
--------------------
#include <stdio.h>
int main()
{
int sum[1000]={1,2,3,4};
for (int i=1;i<1000;i++)
{
sum[0] +=sum[i-1];
}
}
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
2010 Nov 17
3
translate vector of numbers to indicies of 0/1 matrix
Hello All,
Searched around, haven't found a decent solution.
I'd like to translate a vector of numbers to a matrix (or to a list of
vectors) such that the vector values would serve as indicies of the 1's
in an otherwise-zero-filled matrix (or list of vectors). For example:
> a = c(1,3,3,4)
# perform operation
[,1] [,2] [,3] [,4]
[1,] 1 0 0 0
[2,] 0 0 1
2016 May 11
4
Filter optimization remarks by the hotness of the code region
> On May 11, 2016, at 3:37 AM, Hal Finkel <hfinkel at anl.gov> wrote:
>
> ----- Original Message -----
>> From: "Adam Nemet" <anemet at apple.com>
>> To: "Hal Finkel" <hfinkel at anl.gov>
>> Cc: "llvm-dev (llvm-dev at lists.llvm.org)" <llvm-dev at lists.llvm.org>
>> Sent: Wednesday, May 11, 2016 1:15:42 AM
2018 Sep 20
2
Vectorization width not correct using #pragma clang loop vectorize_width
Hello,
I m trying to set vector width using #pragma clang loop vectorize_width(32)
but i m getting width 8 for the following kernel;
#define M 128
#define N 128
#define SQRT_FUN(x) sqrtf(x)
int main(int argc, char** argv)
{
/* Variable declaration/allocation. */
double float_n = (double)N;
double data[N*M];
double corr[M*M];
double mean[M];
double stddev[M];
uint32_t
2020 Jun 24
2
Loop vectorization and unsafe floating point math
Hi llvm-dev!
We are doing some fuzzy testing using C program generators,
and one question that came up when generating a program with
both floating point arithmetic and loop pragmas was;
Is the loop vectorizer really allowed to vectorize a loop when
it can't prove that it is safe to reorder fp math, even if
there is a loop pragma that hints about a preferred width.
When reading here
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
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
2009 Jul 09
1
Converting indices of a matrix subset
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
I have two matrices:
> m1 <- matrix(1,4,4)
> m1
[,1] [,2] [,3] [,4]
[1,] 1 1 1 1
[2,] 1 1 1 1
[3,] 1 1 1 1
[4,] 1 1 1 1
> m2 <- matrix(0,3,3)
> diag(m2) <- 1
> m2
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
I want to get indicies from m2
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 | llc -march=aarch64 -mattr=help” which listed a
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
2016 May 11
2
Filter optimization remarks by the hotness of the code region
Hi Hal,
> On May 10, 2016, at 5:39 PM, Hal Finkel <hfinkel at anl.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
2016 Mar 02
4
Proposal for function vectorization and loop vectorization with function calls
Proposal for function vectorization and loop vectorization with function calls
==============================================================================
Intel Corporation (3/2/2016)
This is a proposal for an initial work towards Clang and LLVM implementation of
vectorizing a function annotated with OpenMP 4.5's "#pragma omp declare simd"
(named SIMD-enabled function) and its
2016 Oct 10
2
On Loop Distribution pass
> On Oct 10, 2016, at 2:50 PM, Hal Finkel <hfinkel at anl.gov> wrote:
>
>
> From: "Dangeti Tharun kumar via llvm-dev" <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>
> To: llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> Cc: "Santanu Das" <cs15mtech11018 at iith.ac.in <mailto:cs15mtech11018 at
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
2016 Feb 18
3
[LLVMdev] LLVM loop vectorizer
Hi Alex,
I'm not aware of efforts on loop coalescing in LLVM, but probably polly can do something like this. Also, one related thought: it might be worth making it a separate pass, not a part of loop vectorizer. LLVM already has several 'utility' passes (e.g. loop rotation), which primarily aims at enabling other passes.
Thanks,
Michael
> On Feb 15, 2016, at 6:44 AM, RCU