Polly 20.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
ScopDetectionDiagnostic.h File Reference
#include "llvm/Analysis/LoopInfo.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/IR/Instruction.h"
#include <cstddef>

Go to the source code of this file.

Classes

class  polly::RejectReason
 Base class of all reject reasons found during Scop detection. More...
 
class  polly::RejectLog
 Stores all errors that occurred during the detection. More...
 
class  polly::ReportCFG
 Base class for CFG related reject reasons. More...
 
class  polly::ReportInvalidTerminator
 Captures bad terminator within a Scop candidate. More...
 
class  polly::ReportIrreducibleRegion
 Captures irreducible regions in CFG. More...
 
class  polly::ReportUnreachableInExit
 Captures regions with an unreachable in the exit block. More...
 
class  polly::ReportIndirectPredecessor
 Captures regions with an IndirectBr predecessor. More...
 
class  polly::ReportAffFunc
 Base class for non-affine reject reasons. More...
 
class  polly::ReportUndefCond
 Captures a condition that is based on an 'undef' value. More...
 
class  polly::ReportInvalidCond
 Captures an invalid condition. More...
 
class  polly::ReportUndefOperand
 Captures an undefined operand. More...
 
class  polly::ReportNonAffBranch
 Captures a non-affine branch. More...
 
class  polly::ReportNoBasePtr
 Captures a missing base pointer. More...
 
class  polly::ReportUndefBasePtr
 Captures an undefined base pointer. More...
 
class  polly::ReportVariantBasePtr
 Captures a base pointer that is not invariant in the region. More...
 
class  polly::ReportNonAffineAccess
 Captures a non-affine access function. More...
 
class  polly::ReportDifferentArrayElementSize
 Report array accesses with differing element size. More...
 
class  polly::ReportLoopBound
 Captures errors with non affine loop bounds. More...
 
class  polly::ReportLoopHasNoExit
 Captures errors when loop has no exit. More...
 
class  polly::ReportLoopHasMultipleExits
 Captures errors when a loop has multiple exists. More...
 
class  polly::ReportLoopOnlySomeLatches
 Captures errors when not all loop latches are part of the scop. More...
 
class  polly::ReportFuncCall
 Captures errors with non-side-effect-known function calls. More...
 
class  polly::ReportAlias
 Captures errors with aliasing. More...
 
class  polly::ReportOther
 Base class for otherwise ungrouped reject reasons. More...
 
class  polly::ReportIntToPtr
 Captures errors with bad IntToPtr instructions. More...
 
class  polly::ReportAlloca
 Captures errors with alloca instructions. More...
 
class  polly::ReportUnknownInst
 Captures errors with unknown instructions. More...
 
class  polly::ReportEntry
 Captures errors with regions containing the function entry block. More...
 
class  polly::ReportUnprofitable
 Report regions that seem not profitable to be optimized. More...
 
class  polly::ReportNonSimpleMemoryAccess
 Captures errors with non-simple memory accesses. More...
 

Namespaces

namespace  llvm
 This file contains the declaration of the PolyhedralInfo class, which will provide an interface to expose polyhedral analysis information of Polly.
 
namespace  polly
 

Typedefs

using polly::RejectReasonPtr = std::shared_ptr< RejectReason >
 

Enumerations

enum class  polly::RejectReasonKind {
  polly::CFG , polly::InvalidTerminator , polly::IrreducibleRegion , polly::UnreachableInExit ,
  polly::IndirectPredecessor , polly::LastCFG , polly::AffFunc , polly::UndefCond ,
  polly::InvalidCond , polly::UndefOperand , polly::NonAffBranch , polly::NoBasePtr ,
  polly::UndefBasePtr , polly::VariantBasePtr , polly::NonAffineAccess , polly::DifferentElementSize ,
  polly::LastAffFunc , polly::LoopBound , polly::LoopHasNoExit , polly::LoopHasMultipleExits ,
  polly::LoopOnlySomeLatches , polly::FuncCall , polly::NonSimpleMemoryAccess , polly::Alias ,
  polly::Other , polly::IntToPtr , polly::Alloca , polly::UnknownInst ,
  polly::Entry , polly::Unprofitable , polly::LastOther
}
 

Functions

BBPair polly::getBBPairForRegion (const Region *R)
 Return the region delimiters (entry & exit block) of R.
 
void polly::getDebugLocations (const BBPair &P, DebugLoc &Begin, DebugLoc &End)
 Set the begin and end source location for the region limited by P.
 
void polly::emitRejectionRemarks (const BBPair &P, const RejectLog &Log, OptimizationRemarkEmitter &ORE)
 Emit optimization remarks about the rejected regions to the user.