| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
Move all transformations into their own directory. CMakeLists are
adjusted accordingly.
llvm-svn: 203607
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In 'obsequi' we have a scop in which the current dead code elimination works,
but the generated code is way too complex. To avoid this trouble (and to not
disable the DCE entirely) we add an additional approximative step before
the actual dead code elimination. This should fix one of the two current
nightly-test issues.
Polly could be improved to handle 'obsequi' by teaching it to introduce only a
single parameter for (%1 and zext %1) which halves the number of parameters and
allows polly to derive a simpler representation for the set of live iterations.
However, this needs some time to investigate.
I will commit a test case as soon as we have a reduced one.
llvm-svn: 202010
|
|
|
|
|
|
|
|
| |
In case we do not have valid dependences, we do not run dead code elimination or
the schedule optimizer. This fixes an infinite loop in the dead code
elimination (PR12110).
llvm-svn: 201982
|
|
|
|
| |
llvm-svn: 201891
|
|
|
|
|
|
|
|
|
|
|
|
| |
Instead of giving a choice between a precise (but possibly very complex)
analysis and an approximative analysis we now use a hybrid approach which uses N
precise steps followed by one approximating step. The precision of the analysis
can be changed by increasing N. With a default of 'N' = 2, we get fully precise
results for our current test cases and should not run into performance problems
for more complex test cases. We can adjust this value when we got more
experience with this dead code elimination.
llvm-svn: 201888
|
|
|
|
| |
llvm-svn: 201887
|
|
|
|
|
|
|
|
|
| |
This pass eliminates loop iterations that compute results that are not used
later on. This can help e.g. in D, where the default zero-initialization is
often unnecessary if right after new values are assigned to an array.
Contributed-by: Peter Conn <conn.peter@gmail.com>
llvm-svn: 201817
|
|
|
|
|
|
|
| |
to be able to compile with ISL master as of today
1df91d8515ec88dc7f7f597168ad0f34f26de5a7
llvm-svn: 183023
|
|
|
|
| |
llvm-svn: 181297
|
|
|
|
| |
llvm-svn: 179160
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
After this commit, polly is clang-format clean. This can be tested with
'ninja polly-check-format'. Updates to clang-format may change this, but the
differences will hopefully be both small and general improvements to the
formatting.
We currently have some not very nice formatting for a couple of items, DEBUG()
stmts for example. I believe the benefit of being clang-format clean outweights
the not perfect layout of this code.
llvm-svn: 177796
|
|
|
|
| |
llvm-svn: 177782
|
|
|
|
| |
llvm-svn: 171844
|
|
|
|
| |
llvm-svn: 171843
|
|
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
|