Polly 22.0.0git
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
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.