Displaying 20 results from an estimated 5000 matches similar to: "How to use the pass 'Unroll and Jam'"
2018 Aug 09
3
Legacy Loop Pass Manager question
Hi,
If we add multiple loop passes to the pass manager in
PassManagerBuilder.cpp consecutively without any func/module pass in
between, I used to think they would belong to the same loop pass manager.
But it does not seem to be the case.
For example for this code snippet
PM.add(createIndVarSimplifyPass()); // Canonicalize indvars
MPM.add(createLoopIdiomPass()); //
2020 May 26
3
Loop Unroll
Awesome, thanks!
Now I have another question. I have a matrix multiplication code. This is
my code:
#include <stdio.h>
#include <stdlib.h>
#define n 4
int main(int argc, char *argv[]) {
int i, j, k;
int A[n][n], B[n][n], C[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
A[i][j] = 1;
B[i][j] = 2;
C[i][j] = 0;
}
}
2019 Oct 02
2
vectorize.enable
Am Mi., 2. Okt. 2019 um 15:56 Uhr schrieb Finkel, Hal J. <hfinkel at anl.gov>:
> > It's done by the WarnMissedTransformation and just looks for
> > transformation metadata that is 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
2020 Jan 02
3
[RFC] Changing LoopUnrollAndJamPass to a function pass.
<div class="socmaildefaultfont" dir="ltr" style="font-family:Arial, Helvetica, sans-serif;font-size:10pt" ><div dir="ltr" ><font face="AppleSystemUIFont" size="3" >LoopUnrollAndJamPass is currently a loop pass. It is added in a LPM with only itself.</font><br><font face="AppleSystemUIFont"
2012 Nov 23
1
[LLVMdev] Disable loop unroll pass
Hi, Ivan:
Sorry for deviating the topic a bit. As I told you before I'm a LLVM
newbie, I cannot
give you conclusive answer if the proposed interface is ok or not.
My personal opinion on these two interface is summarized bellow:
- hasZeroCostLoop()
pro: it is clearly state the HW support.
con: Having zero cost loop doesn't imply the benefit HW loop could
achieve.
2008 Jun 11
3
[LLVMdev] LLVM and loop optimizations
Hello,
We are currently evaluating LLVM as a compiler technology against Open64
and have a few questions regarding its currently status with respect to
optimizations in particular.
Control flow is often expensive on the architectures we are considering
and as such loop optimizations, e.g. unroll and jam, can play an
important role. For example, consider the following program
int
2019 Oct 04
4
vectorize.enable
Thanks for your replies. That was a very useful discussion.
I won't recommit on a Friday afternoon, but will do on Monday, as it looks like we agreed again on the direction and the change.
Orthogonal to this change, the interesting topics brought up are improved diagnostics, and the cases the vectoriser misses. I will briefly look why this particular case isn't vectorised, but I suspect
2016 Jun 16
2
[RFC] Allow loop vectorizer to choose vector widths that generate illegal types
Some thoughts:
o To determine the VF for a loop with mixed data sizes, choosing the smallest ensures each vector register used is full, choosing the largest will minimize the number of vector registers used. Which one’s better, or some size in between, depends on the target’s costs for the vector operations, availability of registers and possibly control/memory divergence and trip count. “This is
2020 May 23
2
Loop Unroll
This is my example (for.c):
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
int main() {
int a, b, c, d;
a = 5;
b = 15;
c = add(a, b);
d = 0;
for(int i=0;i<16;i++)
d = add(c, d);
}
I run:
$ clang -O0 -Xclang -disable-O0-optnone -emit-llvm for.c -S -o forO0.ll
$ opt -O0 -S --loop-unroll --unroll-count=4 -view-cfg forO0.ll -o
for-opt00-unroll4.ll
2010 May 15
2
Email jam problem
Dear All:
I have facing big problem at user email jam (outlook and thunderbird) how
can I check the problem?(like the mail client got email very slow).
email
dovecot --version
1.0.7
dovecot -n
# 1.0.7: /etc/dovecot.conf
info_log_path: /var/log/dovecot.log
protocols: pop3
listen: [0.0.0.0]
login_dir: /var/run/dovecot/login
login_executable: /usr/libexec/dovecot/pop3-login
2012 Nov 23
0
[LLVMdev] Disable loop unroll pass
Hi Shuxin,
On 23/11/2012 00:17, Shuxin Yang wrote:
> Hi, Gang:
>
> I don't want to discuss Open64 internal in LLVM mailing list. Let us
> only focus on the design per se.
> As your this mail and your previous mail combined give me a impression
> that :
>
> The only reason you introduce the specific operator for HW loop in
> Scalar Opt simply because
>
2012 Nov 22
2
[LLVMdev] Disable loop unroll pass
Hi, Gang:
I don't want to discuss Open64 internal in LLVM mailing list. Let us
only focus on the design per se.
As your this mail and your previous mail combined give me a impression
that :
The only reason you introduce the specific operator for HW loop in
Scalar Opt simply because
you have hard time in figure out the trip count in CodeGen.
This might be true for Open64's
2018 Sep 13
2
Loop Distribution pass
Sorry for jumping from
http://lists.llvm.org/pipermail/llvm-dev/2018-September/125853.html
but this is relevant. Sorry for not responding to that sooner. I was thinking about a longer reply, and time flied too quickly.
>But, as I said back then, before we do so, we need to understand
>exactly where to put it. That will depend on what other passes will
>actually use it and if we want it
2019 May 22
2
Delinearization validity checks in DependenceAnalysis
Hello
Yes, I agree that the SCEV cannot be simplified. Is my understanding correct that it is passed to a function like "isKnownNegative"? Which could still be able to prove is always true.
The delinearisation may be valid, depending on exactly how you define delinearisation (under what conditions it should be giving results). It would be invalid for DA to return a dependency of [0
2020 Sep 15
2
[Release-testers] [11.0.0 Release] Please help writing release notes!
Thanks! Committed in 158581772fc8f3d6c601ceba14a08285e46cb7e9
On Tue, Sep 15, 2020 at 4:23 PM Ahsan Saghir <saghir.ibm at gmail.com> wrote:
>
> Hi Hans,
> Here are the PowerPC release notes for 11.0.0:
>
> Optimization:
>
> Improved Loop Unroll-and-Jam legality checks, allowing it to handle more than two level loop nests
> Improved Loop Unroll to be able
2019 May 16
2
Delinearization validity checks in DependenceAnalysis
Hello
Under the proviso that it's been a while since I looked into any of these things...
On 05/15, Bardia Mahjour via llvm-dev wrote:
> I also get correct results for my example (for a 64-bit target) if the upper
> bounds are changed to unsigned. The reason is simply because clang zero-extends
> `m` for address calculations but sign-extends it for the loop upper bound. This
>
2015 Jul 28
2
[LLVMdev] RFC: LoopEditor, a high-level loop transform toolkit
Hi Michael,
+llvmdev,Hal,Nadav
For testing, I was currently thinking of a two pronged approach. Lit tests
as you suggest with a dummy pass, probably with command line options to
define what transform to do, and unit tests to test the delegate behaviour
and return values.
I'll try and produce a mega patch with at least the loop vectoriser moved
over, then split it up again after review.
2019 Oct 07
2
vectorize.enable
Hi,
> The problem I see is that the warning isn't very actionable.
Fully agreed.
> Good warnings are supposed to be actionable, but what is the developer supposed to do in this case?
This diagnostic is unclear. But to be more precise, the first part says the optimisation could not be performed. This is spot on, and an improvement of what we had before because that didn't issue
2020 Oct 01
2
[Release-testers] [11.0.0 Release] Please help writing release notes!
Committed to 11.x as b6efbd6b5f22d0a251d2fba9a5d24ac21760b1cc. Thanks!
On Thu, Oct 1, 2020 at 3:29 AM Lang Hames <lhames at gmail.com> wrote:
>
> Hi Hans,
>
> Apologies if I got here too late, but just in case I didn't here are some JIT release notes for 11.0.0:
>
> - LLJIT now supports execution of static inits / deinits via the LLJIT::initialize and
2008 May 04
1
key jamming
i'm new to linux n i'm loving it all the way.
right now i'm using mandriva one 2008 spring, i tried win 0.9.60 and i just installed 0.9.61.
i noticed a strange behavior from both versions that when i tried playing windows games, sometimes the key will jam, and it will remain jammed even after i quit wine until i rebooted. this has never happened before.
the key jamming doesn't