Displaying 20 results from an estimated 11000 matches similar to: "if-conversion"
2016 Apr 23
2
if-conversion
Hi,
> On Apr 22, 2016, at 8:27 PM, Hal Finkel via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>
> Hi Rob,
>
> The problem here is that the d[i] array is only conditionally accessed, and so we can't if-convert the loop body. The compiler does not know that d[i] is actually dereferenceable for all i from 0 to 15 (the array might be shorter and p[i] is 0 for i past the end
2013 Nov 06
1
[LLVMdev] if-conversion
Hi all,
Sorry to dig up an old thread but I wondered what the status of
if-conversion in LLVM is. Has any work been done towards handling this as a
transform pass on the IR?
I'm looking to implement an if-conversion pass and wanted to ensure that I'm
not duplicating work. Is this something that others would also find useful?
Rob
--
View this message in context:
2019 Aug 08
3
[LLVM] (RFC) Addition/Support of new Vectorization Pragmas in LLVM
On 8/8/19 2:03 PM, Hal Finkel wrote:
Hi,
First, as a high-level note, you posted a link to a Google doc, and at the end of the Google doc, you have a list of questions that you'd like answered. In the future, please put the questions directly in the email. For one thing, more people will read your email than will open your Google doc. Second, having the questions in the email should allow a
2019 Aug 09
3
[LLVM] (RFC) Addition/Support of new Vectorization Pragmas in LLVM
> There is a fundamental problem with the way that ivdep is defined by
Intel's current documentation, at least for C/C++. As you note in your
Google doc, it essentially says that the optimizer may ignore loop-carried
dependencies except for those dependencies it can definitely prove are
present. These are not semantics that any other compiler can actually
replicate, and is not equivalent to
2019 Aug 08
4
[LLVM] (RFC) Addition/Support of new Vectorization Pragmas in LLVM
Hello all,
We are students from Indian Institute of Technology(IIT), Hyderabad, we
would like to propose the addition of the following pragmas in LLVM that
aide in (or possibly increase the scope of) vectorization in LLVM (in
comparison with other compilers).
1.
ivdep
2.
Nontemporal
3.
[no]vecremainder
4.
[no]mask_readwrite
5.
[un]aligned
Could you please
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
2020 May 18
2
LLVM's loop unroller & llvm.loop.parallel_accesses
Would you guys be open to supporting a new hint with the right semantics,
like e.g. llvm.loop.noalias_accesses?! I would need to find support in
clang however and the main point of support would be the loop unroller
behaving as stated in the OP.
On Thu, May 14, 2020 at 3:04 PM Michael Kruse <llvmdev at meinersbur.de> wrote:
> Trivial example:
>
> #pragma clang loop
2020 May 14
3
LLVM's loop unroller & llvm.loop.parallel_accesses
This is interesting! So are you saying that loop.parallel_accesses strictly
loop parallel, and says nothing about aliasing? I see, I guess we may
have been "abusing" the hint and re-purposed it. But isn't llvm's
vectorizer using loop.parallel_accesses to vectorize loops including
vectorize memory accesses that if you ignore loop-carried dependencies,
usually means effectively
2020 May 19
2
LLVM's loop unroller & llvm.loop.parallel_accesses
Skipping the clang question for now, this had to be a loop pragma of some
kind. One step back: what we really need is a way to express that memory
accesses between iterations can be re-ordered. The code that's being
compiled _is_ noalias, but we don't _have_ to use noalias semantics, e.g.
loop parallel semantics are sufficient. What's missing is a way to express
that past the llvm
2006 Feb 24
1
(Newbie) Aggregate for NA values
Folks,
Sorry if this question has been answered before or is obvious (or
worse, statistically "bad"). I don't understand what was said in one
of the search results that seems somewhat related.
I use aggregate to get a quick summary of the data. Part of what I am
looking for in the summary is, how much influence might the NA's have
had, if they were included, and is excluding
2015 Dec 22
2
Question about __builtin_assume()
void test_copy_vec(const short* restrict src, short* restrict res, int N) {
__builtin_assume( (N > 1) && (N%2 == 0) );
#pragma clang loop vectorize(enable) vectorize_width(2) interleave_count(1)
for (int j=0; j<N; ++j)
*res++ = *src++;
}
If I use __builtin_assume(N>1) then llvm knows the loop will execute and not check for (j <= 0), but I can't seem to get it to
2017 Feb 27
2
[Proposal][RFC] Epilog loop vectorization
On 02/27/2017 12:41 PM, Michael Kuperstein wrote:
There's another issue with re-running the vectorizer (which I support, btw - I'm just saying there are more problems to solve on the way :-) )
Historically, we haven't even tried to evaluate the cost of the "constant" (not per-iteration) vectorization overhead - things like alias checks. Instead, we have hard bounds - we
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
2013 May 23
0
[LLVMdev] LLVM Loop Vectorizer puzzle
On 23 May 2013 14:52, Arnold Schwaighofer <aschwaighofer at apple.com> wrote:
> I would like us to grow a few annotations, among others, one to force
> vectorization irrespective whether the loop vectorizer thinks it is
> beneficial or not - however, this is future music.
>
Isn't that part of the ivdep implementation? I thought there was support
for that already...
2019 Sep 10
3
loop vectorizer disabling
I would like to propose that loop pragma `vectorize(disable)` actually means disabling the vectorizer for that loop. This perhaps sounds really obvious (I hope it does), but currently `vectorize(disable)` sets the vectorization width to 1, and that means the vectorizer will run and could perform other tricks such as interleaving. The main reason to change the behaviour is that it will be more what
2019 Aug 13
2
[LLVM] (RFC) Addition/Support of new Vectorization Pragmas in LLVM
vecremainder/novecremainder: Should the pragma simply call the vectorizer to attempt to vectorize the remainder loop, or should the vectorizer use a different method?
>
> Something like that. There were patches posted at some point to enable tail-loop vectorization. At this point, I imagine that you'd construct a VPlan with the vectorized tail.
Yep, committed in
2013 May 23
2
[LLVMdev] LLVM Loop Vectorizer puzzle
On May 23, 2013, at 8:06 AM, Hal Finkel <hfinkel at anl.gov> wrote:
> ----- Original Message -----
>>
>>
>>
>> Hi,
>>
>> Just from personal interest, is there a canonical way in IR+metadata
>> to express "This small constant trip-count loop is desired to be
>> converted into a sequence of vector operations directly"? Ie,
2013 May 23
4
[LLVMdev] LLVM Loop Vectorizer puzzle
On May 23, 2013, at 9:15 AM, Renato Golin <renato.golin at linaro.org> wrote:
> On 23 May 2013 14:52, Arnold Schwaighofer <aschwaighofer at apple.com> wrote:
> I would like us to grow a few annotations, among others, one to force vectorization irrespective whether the loop vectorizer thinks it is beneficial or not - however, this is future music.
>
> Isn't that part
2016 Mar 02
2
Proposal for function vectorization and loop vectorization with function calls
Hi Michael. Thank for your feedback and questions/comments. See below.
>>>>>I think it should be possible to vectorize such loop even without openmp clauses. We just need to gather a vector value from several scalar calls, and vectorizer already knows how to do that, we just need not to bail out early. Dealing with calls is tricky, but in this case we have the pragma, so we can
2016 Aug 12
4
Invoke loop vectorizer
I'm not compiling it to x86. Should loop optimizer something independent of
the target? If so, should the vectorized code on IR level?
On Aug 12, 2016 11:39 AM, "Daniel Berlin" <dberlin at dberlin.org> wrote:
> cat > test.c
>
> #define SIZE 128
>
> void bar(int *restrict A, int* restrict B,int K) {
>
> #pragma clang loop vectorize(enable)