Split implementation from ScopDetectionDiagnostic.h

We don't want the Statistic variables in every module that
includes the diagnostics.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@209571 91177308-0d34-0410-b5e6-96231b3b80d8
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).

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@209572 91177308-0d34-0410-b5e6-96231b3b80d8
Substitue LastError & InvalidRegions with RejectLogs

Use the new ScopDetectionDiagnostics to implement
the same functionality.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@209573 91177308-0d34-0410-b5e6-96231b3b80d8
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.

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@209574 91177308-0d34-0410-b5e6-96231b3b80d8
Expose diagnostic info to users

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@209575 91177308-0d34-0410-b5e6-96231b3b80d8