Displaying 20 results from an estimated 700 matches similar to: "Pass ordering - GVN vs. loop optimizations"
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()); //
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
On 04/17/2013 09:04 PM, Sebastian Pop wrote:
> Tobias Grosser wrote:
>> As said before, we could probably add it in between those two passes:
>>
>> MPM.add(createReassociatePass()); // Reassociate expressions
>> + addExtensionsToPM(EP_LoopOptimizerStart, MPM);
>> MPM.add(createLoopRotatePass()); // Rotate Loop
>
> As this is in the middle of other
2013 Apr 17
2
[LLVMdev] [polly] pass ordering
Tobias Grosser wrote:
> As said before, we could probably add it in between those two passes:
>
> MPM.add(createReassociatePass()); // Reassociate expressions
> + addExtensionsToPM(EP_LoopOptimizerStart, MPM);
> MPM.add(createLoopRotatePass()); // Rotate Loop
As this is in the middle of other LNO passes, can you please rename
s/EP_LoopOptimizerStart/EP_Polly_LNO/ or
2016 Oct 12
2
Loop Unrolling Fail in Simple Vectorized loop
Hi all,
Attached herewith is a simple vectorized function with loops performing a
simple shuffle.
I want all loops (inner and outer) to be unrolled by 2 and as such used
-unroll-count=2
The inner loops(with k as the induction variable and having constant trip
counts) unroll fully, but the outer loop with (j) fails to unroll.
The llvm code is also attached with inner loops fully unrolled.
To
2020 Apr 04
2
Running opt O1 outside of llvm
Hi,
I would like to run the -O1 pass sequence followed by -reg2mem from an out
of tree project which uses llvm.
I am using the following code snippet to do so but in some cases, my method
is also vectorising the code, which doesn't happen when running the same
sequence(-S -O1 -reg2mem) through opt. Can someone please help me find what
I am missing?
Thanks,
Akash.
*
2016 Oct 13
2
Loop Unrolling Fail in Simple Vectorized loop
Thanks for the explanation. But I am a little confused with the following
fact. Can't LLVM keep vectorizable_elements as a symbolic value and convert
the loop to say;
for(unsigned i = 0; i < vectorizable_elements ; i += 2){
//main loop
}
for(unsigned i=0 ; i < vectorizable_elements % 2; i++){
//fix up
}
Why does it have to reason about the range of vectorizable_elements? Even
2013 Sep 25
0
[LLVMdev] [Polly] Move Polly's execution later
Here is an update about moving Polly later.
1. Why does Polly generate incorrect code when we move Polly immediately after the loop rotating pass?
It is mainly caused by a wrong polly merge block. When Polly detects a valid loop for Polyhedral transformations, it usually introduces a new basic block "polly.merge_new_and_old" after the original loop exit block. This new basic block
2016 Oct 13
2
Loop Unrolling Fail in Simple Vectorized loop
If count > MAX_UINT-4 your loop loops indefinitely with an increment of 4,
I think.
On Thu, Oct 13, 2016 at 4:42 PM, Charith Mendis via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> So, I tried unrolling the following simple loop.
>
> int unroll(unsigned * a, unsigned * b, unsigned *c, unsigned count){
>
> for(unsigned i=0; i<count; i++){
>
> a[i] =
2013 Sep 25
3
[LLVMdev] [Polly] Move Polly's execution later
On 09/25/2013 04:55 AM, Star Tan wrote:
> Here is an update about moving Polly later.
Hi star tan,
thanks for your report.
>
> 1. Why does Polly generate incorrect code when we move Polly immediately after the loop rotating pass?
>
> It is mainly caused by a wrong polly merge block. When Polly detects a valid loop for Polyhedral transformations, it usually introduces a new basic
2013 Apr 17
0
[LLVMdev] [polly] pass ordering
On 04/17/2013 08:37 PM, Sebastian Pop wrote:
> Tobias Grosser wrote:
>> On 04/17/2013 05:53 PM, Sebastian Pop wrote:
>>> Hi,
>>>
>>> polly is run very early and schedules the following passes before it runs:
>>>
>>> /// @brief Schedule a set of canonicalization passes to prepare for Polly
>>> ///
>>> /// The set of
2013 Jul 28
0
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
Hi, Sean:
I'm sorry I lie. I didn't mean to lie. I did try to avoid making a
*BIG* change
to the IPO pass-ordering for now. However, when I make a minor change to
populateLTOPassManager() by separating module-pass and non-module-passes, I
saw quite a few performance difference, most of them are degradations.
Attacking
these degradations one by one in a piecemeal manner is wasting
2013 Jul 18
3
[LLVMdev] IR Passes and TargetTransformInfo: Straw Man
Andy and I briefly discussed this the other day, we have not yet got
chance to list a detailed pass order
for the pre- and post- IPO scalar optimizations.
This is wish-list in our mind:
pre-IPO: based on the ordering he propose, get rid of the inlining (or
just inline tiny func), get rid of
all loop xforms...
post-IPO: get rid of inlining, or maybe we still need it, only
2013 Sep 22
4
[LLVMdev] [Polly] Move Polly's execution later
Hi Tobias,
At 2013-09-19 22:59:25,"Tobias Grosser" <tobias at grosser.es> wrote:
>On 09/19/2013 04:46 PM, Star Tan wrote:
>> Hi Tobias,
>>
>>
>> I am trying to move Polly later.
>>
>>
>> LLVM provides some predefined ExtensionPointTy:
>> EP_EarlyAsPossible,
>> EP_ModuleOptimizerEarly,
>>
2013 Nov 07
1
[LLVMdev] SLP vectorizer turned on in commit r190916 which says nothing about it - how to turn it off?
Revision 190916
Commit message:
"Lift alignment restrictions for load/store folding on
VINSERTF128/VEXTRACTF128. Fixes PR17268."
Actual contents of the commit includes
Index: tools/opt/opt.cpp
===================================================================
--- tools/opt/opt.cpp (revision 190915)
+++ tools/opt/opt.cpp (revision 190916)
@@ -462,6 +462,7 @@
2015 Dec 20
3
How to run InternalizePass
I'm working on a whole program optimizer that uses LLVM as a library, and
one of the things I want to do is eliminate dead global functions and
variables even when they are not local to a module. (This understandably
doesn't happen by default because the optimizer has to assume it could be
compiling a library rather than a program.)
I've actually written a function to do this, but
2013 Jan 31
1
The way Puppet installs things fail
Basically, the way puppet installs things things with
/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold install
<package_name>
fails due to authentication
WARNING: The following packages cannot be authenticated
But if I do it from an ssh console normally, using apt-get install
<package_name> it works fine without issues.
Is there a way to change how puppet uses the
2012 Oct 17
2
[LLVMdev] please advise on PassManager
Hello,
I've recently changed AddressSanitizer (asan) compiler pass from ModulePass
to FunctionPass and it could a bit of mayhem.
The problem is that asan FunctionPass instruments a function foo, then foo
gets inlined into bar, then bar gets instrumented
and thus the code of foo gets instrumented twice (which causes run-time
crash).
This happens only at -O0; at -O1 we get the correct order of
2009 Jan 20
6
Apache Server Tuning for Performance
Hi all,
I am facing facing performance issues with our web servers which is
working for concurrent 250 requests properly and then stops
responding when the requests are more than 250 .
The current configuration parameters are as follows :
apachectl -version
Server version: Apache/2.0.52
Server built: Jan 30 2007 09:56:16
Kernel : 2.6.9-55.ELsmp #1 SMP Fri Apr 20 16:36:54 EDT 2007 x86_64
2018 Sep 12
2
How to make LLVM go faster?
Here is some timing information from running the Zig standard library tests:
$ ./zig test ../std/index.zig --enable-timing-info
Name Start End Duration Percent
Initialize 0.0000 0.0010 0.0010 0.0001
Semantic Analysis 0.0010 0.9968 0.9958 0.1192
Code Generation 0.9968 1.4000 0.4032
2013 Apr 17
2
[LLVMdev] [polly] pass ordering
Tobias Grosser wrote:
> On 04/17/2013 05:53 PM, Sebastian Pop wrote:
> >Hi,
> >
> >polly is run very early and schedules the following passes before it runs:
> >
> >/// @brief Schedule a set of canonicalization passes to prepare for Polly
> >///
> >/// The set of optimization passes was partially taken/copied from the
> >/// set of default