Do not run GPGPU test cases without nvptx target

Tag the GPGPU codegen test cases as unsupported if the nvptx target is not
included in the current llvm build.

Contributed-by:  Yabin Hu <yabin.hwu@gmail.com>

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

SVN r209103 removed the OwningPtr variant of the MemoryBuffer APIs.  Switch to
the equivalent std::unique_ptr versions.  This should clear up the build bots.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@209104 91177308-0d34-0410-b5e6-96231b3b80d8
Split implementation from ScopDetectionDiagnostic.h

We don't want the Statistic variables in every module that
includes the diagnostics.
Store all RejectReasons that occurred in a log.

This stores all RejectReasons created for one region
in a RejectLog inside the DetectionContext. For now
this only keeps track of the last error.

A separate patch will enable the tracking of all errors.
This patch itself does no harm (yet).
ScopDetection: Support keep-going

Support a 'keep-going' mode for the ScopDetection. In this mode, we just keep
on detecting, even if we encounter an error.

This is useful for diagnosing SCoP candidates. Sometimes you want all the
errors. Invalid SCoPs will still be refused in the end, we just refuse to
abort on the first error.
Support LLVM RTTI in ScopDetectionDiagnostics

Adds support for dyn_cast<>,isa<> et al.
Move getDebugLocation to ScopDetectionDiagnostic
Add a print method for RejectLogs
Disable message generation for ReportAlias

This breaks as soon as we are outside of the ScopDetection
so far.
ScopDetection hands us a Stack allocated reference to the
AliasSet. This breaks as soon as the ScopDetection returns.
Add support for (some) non affine expressions

    The NonAffineSCEVValidator supports non affine expressions of weak
    parametrized form, e.g.:
     n*i + c , where n and c are parameters and i is a loop-iv.

    We still reject expressions of the form:
     i*j + c, where i and j are loop-ivs and c is a parameter.