Polly is a library that implements
polyhedral model optimizations.
The polyhedral model is an algorithm for loop nest optimizations, which is to say it makes non-parallel nested loop code into parallel code.
The main uses for such frameworks is to convert SISD code to SIMD code. That is, it automatically optimizes to use SSE and the like to its full potential. It can also be used for auto-threading, but generally only when paired with language extensions to C/C++ that explicitly opt-in (via OpenMP/AMP/etc.). There's usually a slew of other related optimizations that go with it; the
Polly website mentions data locality optimization, for instance, which results in more efficient memory access to large blocks of data in parallel code.
GCC uses the polyhedral model for its auto-vectorizer code, too. I'm unsure what the new high-power auto-vectorizer in VC11 (MSVS 2012) uses, but I'd put my money on it using the polyhedral model as well. I'm unsure what optimization models those compilers use for their OpenMP backends (or what VC11 uses for its AMP support, for that matter).