summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/CodegenCleanup.cpp
Commit message (Collapse)AuthorAgeFilesLines
* CodegenCleanup: Drop -load-combine passTobias Grosser2016-03-251-1/+0
| | | | | | | | | | | | | | | This pass is not enabled in the default tool chain and currently can run into an infinite loop, due to other parts of LLVM generating incorrect IR (http://llvm.org/PR27065) -- which is not executed and consequently does not seem to disturb other passes. As this pass is not really needed, we can just drop it to get our build clean. This fixes the timeout issues in MultiSource/Benchmarks/MiBench/consumer-jpeg and MultiSource/Benchmarks/mediabench/jpeg/jpeg-6a/cjpeg for -polly-position=before-vectorizer -polly-process-unprofitable.. Unfortunately, we are still left with a miscompile in cjpeg. llvm-svn: 264396
* Fix of r257495.Roman Gareev2016-01-121-1/+0
| | | | | | Remove redundant "FPM->add(createDemoteRegisterToMemoryPass());" llvm-svn: 257514
* We do not need to schedule another loop interchange pass after Polly, as PollyRoman Gareev2016-01-121-1/+1
| | | | | | | | | | | should perform loop interchanges itself. This also fixes a bug we see due to the "loop-interchange" pass producing incorrect IR when compiling linpack-pc.c from the LLVM test-suite with "-polly-position=before-vectorizer". Reviewed-by: Tobias Grosser <tobias@grosser.es> llvm-svn: 257495
* IR cleanup after CodeGenerationMichael Kruse2015-11-261-0/+121
Re-run canonicalization passes after Polly's code generation. The set of passes currently added here are nearly all the passes between --polly-position=early and --polly-position=before-vectorizer, i.e. all passes that would usually run after Polly. In order to run these only if Polly actually modified the code, we add a function attribute "polly-optimzed" to a function that contains generated code. The cleanup pass is skipped if the function does not have this attribute. There is no support by the (legacy) PassManager to run passes only under some conditions. One could have wrapped all transformation passes to run only when CodeGeneration changed the code, but the analyses would run anyway. This patch creates an independent pass manager. The disadvantages are that all analyses have to re-run even if preserved and it does not honor compiler switches like the PassManagerBuilder does. Differential Revision: http://reviews.llvm.org/D14333 llvm-svn: 254150
OpenPOWER on IntegriCloud