summaryrefslogtreecommitdiffstats
path: root/polly/lib/Transform/Canonicalization.cpp
Commit message (Collapse)AuthorAgeFilesLines
* Apply include-what-you-use #include removal suggestions. NFC.Michael Kruse2019-03-281-0/+1
| | | | | | | | | | | | This removes unused includes (and forward declarations) as suggested by include-what-you-use. If a transitive include of a removed include is required to compile a file, I added the required header (or forward declaration if suggested by include-what-you-use). This should reduce compilation time and reduce the number of iterative recompilations when a header was changed. llvm-svn: 357209
* Update the file headers across all of the LLVM projects in the monorepoChandler Carruth2019-01-191-4/+3
| | | | | | | | | | | | | | | | | to reflect the new license. We understand that people may be surprised that we're moving the header entirely to discuss the new license. We checked this carefully with the Foundation's lawyer and we believe this is the correct approach. Essentially, all code in the project is now made available by the LLVM project under our new license, so you will see that the license headers include that license only. Some of our contributors have contributed code under our old license, and accordingly, we have retained a copy of our old license notice in the top-level files in each project and repository. llvm-svn: 351636
* Fixup Polly for an LLVM header file change.David Blaikie2018-04-241-0/+1
| | | | llvm-svn: 330679
* Fix polly build after r328717Reid Kleckner2018-03-281-0/+1
| | | | llvm-svn: 328728
* [Polly] Run early cse + memory SSA to remove redundancies in the input codeTobias Grosser2017-08-191-0/+2
| | | | | | | This allows us to get rid of many identical loads as they commonly appear in Fortran code. llvm-svn: 311231
* Add rewrite by-reference parameter passTobias Grosser2017-08-171-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: This pass detangles induction variables from functions, which take variables by reference. Most fortran functions compiled with gfortran pass variables by reference. Unfortunately a common pattern, printf calls of induction variables, prevent in this situation the promotion of the induction variable to a register, which again inhibits any kind of loop analysis. To work around this issue we developed a specialized pass which introduces separate alloca slots for known-read-only references, which indicate the mem2reg pass that the induction variables can be promoted to registers and consquently enable SCEV to work. We currently hardcode the information that a function _gfortran_transfer_integer_write does not read its second parameter, as dragonegg does not add the right annotations and we cannot change old dragonegg releases. Hopefully flang will produce the right annotations. Reviewers: Meinersbur, bollu, singam-sanjay Reviewed By: bollu Subscribers: mgorny, pollydev, llvm-commits Tags: #polly Differential Revision: https://reviews.llvm.org/D36800 llvm-svn: 311066
* Rerun mem2reg after the inlinerJohannes Doerfert2016-12-021-0/+1
| | | | | | | | It did happen that after the inliner finished we end up with promotable allocas in a function. We now run mem2reg to make sure everything is promoted if possible. llvm-svn: 288514
* clang-tidy: Add llvm namespace commentsTobias Grosser2016-06-231-1/+1
| | | | | | | | | | | | | | | | | | | | | | | llvm commonly adds a comment to the closing brace of a namespace to indicate which namespace is closed. clang-tidy provides with llvm-namespace-comment a handy tool to check for this habit. We use it to ensure we consitently use namespace comments in Polly. There are slightly different styles in how namespaces are closed in LLVM. As there is no large difference between the different comment styles we go for the style clang-tidy suggests by default. To reproduce this fix run: for i in `ls tools/polly/lib/*/*.cpp`; \ clang-tidy -checks='-*,llvm-namespace-comment' -p build $i -fix \ -header-filter=".*"; \ done This cleanup was suggested by Eugene Zelenko <eugene.zelenko@gmail.com> in http://reviews.llvm.org/D21488 and was split out to increase readability. llvm-svn: 273621
* Fix separator in header commentTobias Grosser2016-06-221-1/+1
| | | | | | | This cleanup was suggested by Eugene Zelenko <eugene.zelenko@gmail.com> in http://reviews.llvm.org/D21488 and was split out to increase readability. llvm-svn: 273437
* Adjust formatting to clang-format changes in 256149Tobias Grosser2015-12-211-1/+1
| | | | llvm-svn: 256151
* Sort includes using 'clang-format -sort-includes'Tobias Grosser2015-10-151-2/+2
| | | | llvm-svn: 250392
* RegisterPasses: Optionally run inliner before PollyTobias Grosser2015-10-121-0/+13
| | | | | | | | This will allow us to optimize C++ template code with Polly. This support is mostly for debugging purpose and individual experiments. The ultimate goal is still to run Polly later in the pass manager when inlining already happened. llvm-svn: 250092
* Add indvar pass to canonicalization sequenceTobias Grosser2015-05-301-0/+1
| | | | | | | | | | | | Running indvar before Polly is useful as this eliminates zexts as they commonly appear when a 32 bit induction variable (type int) was used on a 64 bit system. These zexts confuse our delinearization and prevent for example the successful delinearization of the nussinov kernel in polybench-c-4.1. This fixes http://llvm.org/PR23426 Suggested-by: Xing Su <xsu.llvm@outlook.com> llvm-svn: 238643
* Fix formattingTobias Grosser2015-02-161-2/+1
| | | | llvm-svn: 229360
* Update Polly for the removal of LLVM_DELETED_FUNCTION now that '= delete' ↵David Blaikie2015-02-151-2/+2
| | | | | | works on all supported compilers (MSVC2012 compat has been dropped) llvm-svn: 229344
* [PM] Convert Polly over to directly use the legacy pass managerChandler Carruth2015-02-131-2/+2
| | | | | | | | | namespace and header rather than the top-level header and using declarations. These helpers impede modular builds and are going away. Migrating away from them will also be necessary to start mixing in any usage of the new pass manager. llvm-svn: 229091
* Remove -polly-codegen-scev option and related codeTobias Grosser2014-11-301-6/+1
| | | | | | | | SCEV based code generation has been the default for two weeks after having been tested for a long time. We now drop the support the non-scev-based code generation. llvm-svn: 222978
* No need to run -mem2reg twiceTobias Grosser2014-08-021-1/+0
| | | | llvm-svn: 214632
* Move transformations into own directoryAndreas Simbuerger2014-03-111-0/+86
Move all transformations into their own directory. CMakeLists are adjusted accordingly. llvm-svn: 203607
OpenPOWER on IntegriCloud