Added support for modulo expressions

  The support is limited to signed modulo access and condition
  expressions with a constant right hand side, e.g., A[i % 2] or
  A[i % 9]. Test cases are modified according to this new feature and
  new test cases are added.

Differential Revision: http://reviews.llvm.org/D4843


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@215684 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "Added support for modulo expressions"

This reverts commit 215684. The intention of the commit is great, but
unfortunately it seems to be the cause of 14 LNT test suite failures:

http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3-polly/builds/116

To make our buildbots and performance testers green until this issue is solved,
we temporarily revert this commit.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@215816 91177308-0d34-0410-b5e6-96231b3b80d8
Revert "[Refactor] Cleanup runtime code generation"

This reverts commit 215466 (and 215528, a trivial formatting fix).

The intention of these commits is a good one, but unfortunately they broke
our LNT buildbot:

http://lab.llvm.org:8011/builders/perf-x86_64-penryn-O3-polly-codegen-isl

Several of the cleanup changes that have been combined in this 'fixup' are
trivial and could probably be committed as obvious changes without risking to
break the build. The remaining changes are little and it should be easy to
figure out what went wrong.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@215817 91177308-0d34-0410-b5e6-96231b3b80d8
Diagnostic: Enable error tracking by default

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@215829 91177308-0d34-0410-b5e6-96231b3b80d8
Diagnostic: Provide end-user message for aliasing errors

This will spill out information about LLVM-internals. However, in cases
where the name of the Value matches the name of the array in the source,
we provide more useful information. In cases where we spill internals,
the information still might help the user to pin down the correct
arrays.
The problem we face here is: The error is pinned to the debug location
of one of the offending values out of the alias set instead of all of them.

The more information we give the user about the set of aliasing
pointers the better.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@215830 91177308-0d34-0410-b5e6-96231b3b80d8
Diagnostic: Provide end-user message for non-affine access function errors

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@215831 91177308-0d34-0410-b5e6-96231b3b80d8
Diagnostic: Provide end-user message for non-affine loop bound errors

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@215832 91177308-0d34-0410-b5e6-96231b3b80d8
Added arcanist linters and cleaned errors and warnings

  Arcanist (arc) will now always run linters before uploading any new
  commit to Phabricator. All errors/warnings (or their absence) will be
  shown in the web interface together with a explanation by the commiter
  (arcanist will ask the commiter if the build was not clean).

  The linters include:
    - clang-format
    - spelling check
    - permissions check (aka. chmod)
    - filename check
    - merge conflict marker check
  Note, that their scope is sometimes limited (see .arclint for
  details).

  This commit also fixes all errors and warnings these linters reported,
  namely:
    - spelling mistakes and typos
    - executable permissions for various text files

Differential Revision: http://reviews.llvm.org/D4916



git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@215871 91177308-0d34-0410-b5e6-96231b3b80d8
[Fix] isl usage errors in ScheduleOptimizer


git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@216084 91177308-0d34-0410-b5e6-96231b3b80d8
Update for LLVM api change

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@216394 91177308-0d34-0410-b5e6-96231b3b80d8
Update format and fix wrong file name
Add GPGPU codegen related files from ppcg into polly

Not made any changes at the moment.
Remove and comment unused header includes

- pet.h has been included in ppcg.h thus no need to include it once
  again.
- Change header include from <pet.h> to "pet.h"
Remove useless ppcg functions to make compiling success
Rename *.c to *.cpp

So that we can use polly's data structure in ppcg. In the next step,
pet_stmt will be replaced with polly::ScopStmt. Other than renaming all
c files into cpp files, there are two main kinds of changes in the code:
 - We rename all the varialbes named 'private', because 'private' is
   used as keyword in C++.
 - We enforce pointer type casts for 'void *' to avoid build errors that
   exist in C++ but not in C.
Update makefile to include GPGPU codegen files into build

All the added GPGPU codegen files compiled successfully.
Do not check format of the GPGPU codegen sources.
Remove use of isl_printer parameter in "generate" function

The original generate function is divided into 2 parts:
 - the new generate function: store the generated ast_node host tree
   in gen and return void.

Two functions call or use "generate" as callback are commented out.
 - generate_wrap
 - generate_gpu

Add new declaration of generate_gpu to gpu.h.
Replace use of pet_stmt with polly::ScopStmt
Add an isl_id to MemoryAccess class.

This ref_id is used to represent an id of an access.