hanchenye-llvm-project/polly
Reid Kleckner 4dc0b1ac60 Fix clang -Wimplicit-fallthrough warnings across llvm, NFC
This patch should not introduce any behavior changes. It consists of
mostly one of two changes:
1. Replacing fall through comments with the LLVM_FALLTHROUGH macro
2. Inserting 'break' before falling through into a case block consisting
   of only 'break'.

We were already using this warning with GCC, but its warning behaves
slightly differently. In this patch, the following differences are
relevant:
1. GCC recognizes comments that say "fall through" as annotations, clang
   doesn't
2. GCC doesn't warn on "case N: foo(); default: break;", clang does
3. GCC doesn't warn when the case contains a switch, but falls through
   the outer case.

I will enable the warning separately in a follow-up patch so that it can
be cleanly reverted if necessary.

Reviewers: alexfh, rsmith, lattner, rtrieu, EricWF, bollu

Differential Revision: https://reviews.llvm.org/D53950

llvm-svn: 345882
2018-11-01 19:54:45 +00:00
..
cmake [JSONExporter] Replace bundled Jsoncpp with llvm/Support/JSON.h. NFC. 2018-08-01 00:15:16 +00:00
docs [doc] Fix HowToManuallyUseTheIndividualPiecesOfPolly 2018-09-26 15:22:39 +00:00
include/polly [TI removal] Make `getTerminator()` return a generic `Instruction`. 2018-10-15 10:42:50 +00:00
lib Fix clang -Wimplicit-fallthrough warnings across llvm, NFC 2018-11-01 19:54:45 +00:00
test Fix another error related to YAML quoting. 2018-10-12 17:28:39 +00:00
tools Update copyright year to 2018. 2018-06-18 12:22:17 +00:00
unittests Update isl-cpp bindings 2018-08-09 05:07:14 +00:00
utils [arc] Remove unittesting from arcconfig 2018-05-15 13:43:42 +00:00
www Move www/experiments to docs/experiments 2018-09-26 15:21:43 +00:00
.arcconfig [arc] Remove unittesting from arcconfig 2018-05-15 13:43:42 +00:00
.arclint
.gitattributes
.gitignore
CMakeLists.txt [JSONExporter] Replace bundled Jsoncpp with llvm/Support/JSON.h. NFC. 2018-08-01 00:15:16 +00:00
CREDITS.txt
LICENSE.txt
README Test commit 2017-06-28 12:58:44 +00:00

README

Polly - Polyhedral optimizations for LLVM
-----------------------------------------
http://polly.llvm.org/

Polly uses a mathematical representation, the polyhedral model, to represent and
transform loops and other control flow structures. Using an abstract
representation it is possible to reason about transformations in a more general
way and to use highly optimized linear programming libraries to figure out the
optimal loop structure. These transformations can be used to do constant
propagation through arrays, remove dead loop iterations, optimize loops for
cache locality, optimize arrays, apply advanced automatic parallelization, drive
vectorization, or they can be used to do software pipelining.