LLVM  8.0.1
Classes | Namespaces | Typedefs | Enumerations | Functions
DiagnosticInfo.h File Reference
#include "llvm-c/Types.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/IR/DebugLoc.h"
#include "llvm/Support/CBindingWrapping.h"
#include "llvm/Support/YAMLTraits.h"
#include <algorithm>
#include <cstdint>
#include <functional>
#include <iterator>
#include <string>
Include dependency graph for DiagnosticInfo.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::DiagnosticInfo
 This is the base abstract class for diagnostic reporting in the backend. More...
 
class  llvm::DiagnosticInfoInlineAsm
 Diagnostic information for inline asm reporting. More...
 
class  llvm::DiagnosticInfoResourceLimit
 Diagnostic information for stack size etc. More...
 
class  llvm::DiagnosticInfoStackSize
 
class  llvm::DiagnosticInfoDebugMetadataVersion
 Diagnostic information for debug metadata version reporting. More...
 
class  llvm::DiagnosticInfoIgnoringInvalidDebugMetadata
 Diagnostic information for stripping invalid debug metadata. More...
 
class  llvm::DiagnosticInfoSampleProfile
 Diagnostic information for the sample profiler. More...
 
class  llvm::DiagnosticInfoPGOProfile
 Diagnostic information for the PGO profiler. More...
 
class  llvm::DiagnosticLocation
 
class  llvm::DiagnosticInfoWithLocationBase
 Common features for diagnostics with an associated location. More...
 
class  llvm::DiagnosticInfoOptimizationBase
 Common features for diagnostics dealing with optimization remarks that are used by both IR and MIR passes. More...
 
struct  llvm::DiagnosticInfoOptimizationBase::setIsVerbose
 Used to set IsVerbose via the stream interface. More...
 
struct  llvm::DiagnosticInfoOptimizationBase::setExtraArgs
 When an instance of this is inserted into the stream, the arguments following will not appear in the remark printed in the compiler output (-Rpass) but only in the optimization record file (-fsave-optimization-record). More...
 
struct  llvm::DiagnosticInfoOptimizationBase::Argument
 Used in the streaming interface as the general argument type. More...
 
class  llvm::DiagnosticInfoIROptimization
 Common features for diagnostics dealing with optimization remarks that are used by IR passes. More...
 
class  llvm::OptimizationRemark
 Diagnostic information for applied optimization remarks. More...
 
class  llvm::OptimizationRemarkMissed
 Diagnostic information for missed-optimization remarks. More...
 
class  llvm::OptimizationRemarkAnalysis
 Diagnostic information for optimization analysis remarks. More...
 
class  llvm::OptimizationRemarkAnalysisFPCommute
 Diagnostic information for optimization analysis remarks related to floating-point non-commutativity. More...
 
class  llvm::OptimizationRemarkAnalysisAliasing
 Diagnostic information for optimization analysis remarks related to pointer aliasing. More...
 
class  llvm::DiagnosticInfoMIRParser
 Diagnostic information for machine IR parser. More...
 
class  llvm::DiagnosticInfoISelFallback
 Diagnostic information for ISel fallback path. More...
 
class  llvm::DiagnosticInfoOptimizationFailure
 Diagnostic information for optimization failures. More...
 
class  llvm::DiagnosticInfoUnsupported
 Diagnostic information for unsupported feature in backend. More...
 
struct  llvm::yaml::MappingTraits< DiagnosticInfoOptimizationBase * >
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 llvm::yaml
 

Typedefs

using llvm::DiagnosticHandlerFunction = std::function< void(const DiagnosticInfo &)>
 

Enumerations

enum  llvm::DiagnosticSeverity : char { llvm::DS_Error, llvm::DS_Warning, llvm::DS_Remark, llvm::DS_Note }
 Defines the different supported severity of a diagnostic. More...
 
enum  llvm::DiagnosticKind {
  llvm::DK_InlineAsm, llvm::DK_ResourceLimit, llvm::DK_StackSize, llvm::DK_Linker,
  llvm::DK_DebugMetadataVersion, llvm::DK_DebugMetadataInvalid, llvm::DK_ISelFallback, llvm::DK_SampleProfile,
  llvm::DK_OptimizationRemark, llvm::DK_OptimizationRemarkMissed, llvm::DK_OptimizationRemarkAnalysis, llvm::DK_OptimizationRemarkAnalysisFPCommute,
  llvm::DK_OptimizationRemarkAnalysisAliasing, llvm::DK_OptimizationFailure, llvm::DK_FirstRemark = DK_OptimizationRemark, llvm::DK_LastRemark = DK_OptimizationFailure,
  llvm::DK_MachineOptimizationRemark, llvm::DK_MachineOptimizationRemarkMissed, llvm::DK_MachineOptimizationRemarkAnalysis, llvm::DK_FirstMachineRemark = DK_MachineOptimizationRemark,
  llvm::DK_LastMachineRemark = DK_MachineOptimizationRemarkAnalysis, llvm::DK_MIRParser, llvm::DK_PGOProfile, llvm::DK_Unsupported,
  llvm::DK_FirstPluginKind
}
 Defines the different supported kind of a diagnostic. More...
 

Functions

int llvm::getNextAvailablePluginDiagnosticKind ()
 Get the next available kind ID for a plugin diagnostic. More...
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type S)
 Allow the insertion operator to return the actual remark type rather than a common base class. More...
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef >::type S)
 Also allow r-value for the remark to allow insertion into a temporarily-constructed remark. More...
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type A)
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument >::type A)
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type V)
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &&R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose >::type V)
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &R, typename std::enable_if< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setExtraArgs >::type EA)