summaryrefslogtreecommitdiffstats
path: root/polly/lib/DeadCodeElimination.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Move transformations into own directoryAndreas Simbuerger2014-03-111-157/+0
| | | | | | | Move all transformations into their own directory. CMakeLists are adjusted accordingly. llvm-svn: 203607
* Dead code elimination: Schedule another approximative step before actual DCETobias Grosser2014-02-241-3/+7
| | | | | | | | | | | | | | | | | 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
* Do not fail in case we do not have valid dependencesTobias Grosser2014-02-231-2/+5
| | | | | | | | 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
* Fix formattingTobias Grosser2014-02-211-1/+1
| | | | llvm-svn: 201891
* DCE: Switch to hybrid precise-unprecise analysisTobias Grosser2014-02-211-21/+22
| | | | | | | | | | | | 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
* DCE: Update descriptionTobias Grosser2014-02-211-7/+20
| | | | llvm-svn: 201887
* Add polyhedral dead code elimination.Tobias Grosser2014-02-201-8/+71
| | | | | | | | | 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
* include missing ISL header fileSebastian Pop2013-05-311-0/+1
| | | | | | | to be able to compile with ISL master as of today 1df91d8515ec88dc7f7f597168ad0f34f26de5a7 llvm-svn: 183023
* Sort includesTobias Grosser2013-05-071-2/+1
| | | | llvm-svn: 181297
* Update formatting to latest version of clang-formatTobias Grosser2013-04-101-3/+3
| | | | llvm-svn: 179160
* clang-format: Many more filesTobias Grosser2013-03-231-1/+0
| | | | | | | | | | | | | 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
* DeadCodeElimination: clang-format and commentTobias Grosser2013-03-231-23/+22
| | | | llvm-svn: 177782
* Dead code elimination: Make variable names uppercaseTobias Grosser2013-01-081-4/+4
| | | | llvm-svn: 171844
* clang-format the dead code elimination passTobias Grosser2013-01-081-11/+11
| | | | llvm-svn: 171843
* Add a sceleton for a polyhedral dead code elimination.Tobias Grosser2012-01-311-0/+75
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
OpenPOWER on IntegriCloud