| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Rename some files and adjust cmake accordingly
llvm-svn: 203609
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes the buildbots who failed, because the linker eliminated most of the
Polly functionality when building without BUILD_SHARED_LIBS=ON.
Besides fixing the build, this change also brings additional functionality. With
the new separation between the general polly libraries and the functionality for
the polly module, it is now possible to link polly directly into a tool instead
of using requiring users to load a shared library.
llvm-svn: 202762
|
|
|
|
| |
llvm-svn: 201889
|
|
|
|
| |
llvm-svn: 200209
|
|
|
|
|
|
|
|
|
|
|
|
| |
Restricting Polly to -O3 does not make a lot of sense as it is opt-in anyway
and users who specifically request it should get it. If this causes performance
problems we should rather address them by scheduling the right cleanup passes
then just prevent the user from trying.
Also restricting Polly to -O3 made bugpoint not work with the -O3 flag and polly
enabled.
llvm-svn: 200208
|
|
|
|
|
|
|
| |
This ModulePass schedules the set of Polly canonicalization passes. It is a
debugging tool that can be used to preoptimize .ll files for Polly processing.
llvm-svn: 198376
|
|
|
|
|
|
|
|
|
|
| |
Also the code makes the impression this was happening, shouldEnablePolly()
always returns false for optlevel equal to zero. This was previously different,
but was accidentally changed by a commit a couple of months ago. As this
behavior was mainly a debugging tool and adding this to clang never really made
sense, we just remove the last traces.
llvm-svn: 198370
|
|
|
|
|
|
| |
Found by clang-format.
llvm-svn: 194949
|
|
|
|
|
|
|
| |
to be able to call the same functionality from registerPollyEarlyAsPossiblePasses
and registerPollyOptLevel0Passes.
llvm-svn: 194922
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
String operations resulted by raw_string_ostream in the INVALID macro can lead
to significant compile-time overhead when compiling large size source code.
This is because raw_string_ostream relies on TypeFinder class, whose
compile-time cost increases as the size of the module increases. This patch
targets to ensure that it only track detection failures if actually needed.
In this way, we can avoid expensive string operations in normal execution.
With this patch file, the relative compile-time cost of Polly-detect pass does
not increase even when compiling very large size source code.
Contributed-by: Star Tan <tanmx_star@yeah.net>
llvm-svn: 187102
|
|
|
|
| |
llvm-svn: 186806
|
|
|
|
| |
llvm-svn: 181297
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the new cl::OptionCategory support to move the Polly options into a separate
option category. The aim is to hide most options and show by default only the
options a user needs to influence '-O3 -polly'. The available options probably
need some care, but here is the current status:
Polly Options:
Configure the polly loop optimizer
-enable-polly-openmp - Generate OpenMP parallel code
-polly - Enable the polly optimizer (only at -O3)
-polly-no-tiling - Disable tiling in the scheduler
-polly-only-func=<function-name> - Only run on a single function
-polly-report - Print information about the activities
of Polly
-polly-vectorizer - Select the vectorization strategy
=none - No Vectorization
=polly - Polly internal vectorizer
=unroll-only - Only grouped unroll the vectorize
candidate loops
=bb - The Basic Block vectorizer driven by
Polly
llvm-svn: 181295
|
|
|
|
|
|
|
| |
clang-format become way more stable. This time we mainly reformat function
signatures.
llvm-svn: 181294
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We now support regions with multiple entries and multiple exits natively.
Regions are not needed to be simplified to single entry and single exit.
We need to XFAIL two test cases as this change increases the scop coverage
and uncoveres two failures in the independent blocks pass. The first failure
will be fixed in a subsequent commit, the second one is in the non-default
-polly-codegen-scev mode and still needs to be fixed.
Contributed-by: Star Tan <tanmx_star@yeah.net>
llvm-svn: 179673
|
|
|
|
| |
llvm-svn: 179018
|
|
|
|
| |
llvm-svn: 177831
|
|
|
|
| |
llvm-svn: 177787
|
|
|
|
|
|
|
| |
Scev code generation can now handle scops with non canonical induction
variables. Hence there is no need to introduce canonical ones any more.
llvm-svn: 177644
|
|
|
|
|
|
|
|
|
| |
This allows us to test Polly and the Polly optimizer without actually doing
code generation at the end. By enabling this option, we can also measure the
compile time overhead due to code generation and the cost of LLVM optimizing the
newly generated code.t
llvm-svn: 177516
|
|
|
|
|
|
|
|
| |
Caught while compiling polly without cloog:
../tools/polly/lib/RegisterPasses.cpp:77: error: use of enum 'CodegenChoice' without previous declaration
llvm-svn: 168624
|
|
|
|
|
|
|
|
| |
This change ensures that isl is only detected if it includes code generation
support. This allows us to remove a lot of conditional compilation and also
avoids missing test cases in case the feature is not available.
llvm-svn: 166403
|
|
|
|
| |
llvm-svn: 166397
|
|
|
|
|
|
|
|
|
| |
This pass implements a new code generator that uses the code generation
algorithm included in isl.
For the moment the new code generation is limited to sequential code.
llvm-svn: 165037
|
|
|
|
| |
llvm-svn: 165036
|
|
|
|
| |
llvm-svn: 161157
|
|
|
|
| |
llvm-svn: 157604
|
|
|
|
| |
llvm-svn: 156326
|
|
|
|
| |
llvm-svn: 156325
|
|
|
|
| |
llvm-svn: 156254
|
|
|
|
| |
llvm-svn: 156199
|
|
|
|
|
|
| |
2. Include the helper function and the helper class in the RegisterPasses.h into the polly namespace.
llvm-svn: 155636
|
|
|
|
|
|
|
| |
Instead of -polly-run-import-jscop and -polly-run-export-jscop, we just use
-polly-import and -polly-export.
llvm-svn: 155446
|
|
|
|
|
|
|
| |
We now support -polly-optimizer=isl, -polly-optimizer=pocc and
-polly-optimizer=none. The option -polly-no-optimizer is gone.
llvm-svn: 155445
|
|
|
|
| |
llvm-svn: 153316
|
|
|
|
|
|
|
|
|
|
|
|
| |
For boolean flags in Polly there is no problem if they are given more than once.
Hence, we can allow it to not fail for build systems that (acciently) add flags
several times.
This fixes: PR12278
Reported by: Sebastian Pop <sebpop@gmail.com>
llvm-svn: 152933
|
|
|
|
| |
llvm-svn: 150674
|
|
|
|
| |
llvm-svn: 150671
|
|
|
|
|
|
|
|
| |
This allows us to enable -enable-iv-rewrite by default and releases LLVM from
the burdon to keep that feature. This is an intermediate step. We plan to soon
remove the need for rewritten induction variables entirely.
llvm-svn: 150481
|
|
|
|
| |
llvm-svn: 149871
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Such a dead code elimination can remove redundant stores to arrays. It can also
eliminate calculations where the results are stored to memory but where they are
overwritten before ever being read. It may also fix bugs like:
http://llvm.org/bugs/show_bug.cgi?id=5117
This commit just adds a sceleton without any functionality.
If anybody is interested to learn about polyhedral optimizations this would be
a good task. Well definined, self contained and pretty simple. Ping me if you
want to start and you need some pointers to get going.
llvm-svn: 149386
|
|
|
|
| |
llvm-svn: 149240
|
|
|
|
|
|
|
|
|
|
|
| |
To extract a preoptimized LLVM-IR file from a C-file run:
clang -Xclang -load -Xclang LLVMPolly.so -O0 -mllvm -polly file.c -S -emit-llvm
On the generated file you can directly run passes such as:
'opt -view-scops file.s'
llvm-svn: 146560
|
|
|
|
|
|
|
| |
This replaces the old option -polly-use-pocc. Also call the passes uniformly
-polly-opt-pocc and -polly-opt-isl.
llvm-svn: 145071
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We disable Polly by default and add a new option '-polly' that enables Polly.
This allows us to create an the alias
$ alias clang clang -Xclang -load -Xclang LLVMPolly.so
which loads Polly always into clang. It can now be enabled by running:
$ clang -O3 -mllvm -polly file.c
To enable it by default an alias pollycc can be create
$ alias pollycc clang -O3 -mllvm -polly
llvm-svn: 144917
|
|
|
|
|
|
| |
Fix suggested by Sebastian Pop.
llvm-svn: 144901
|
|
|
|
| |
llvm-svn: 144638
|
|
|
|
| |
llvm-svn: 144281
|
|
|
|
| |
llvm-svn: 142773
|
|
|
|
|
|
| |
The option -polly-no-optimizer disables the scheduling optimizer.
llvm-svn: 142772
|