LLVM 19.0.0git
Classes | Namespaces | Typedefs | Enumerations | Functions
DiagnosticInfo.h File Reference
#include "llvm-c/Types.h"
#include "llvm/ADT/ArrayRef.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/ErrorHandling.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/TypeSize.h"
#include <algorithm>
#include <cstdint>
#include <functional>
#include <iterator>
#include <optional>
#include <string>

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::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::DiagnosticInfoResourceLimit
 Diagnostic information for stack size etc. More...
 
class  llvm::DiagnosticInfoStackSize
 
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...
 
class  llvm::DiagnosticInfoMisExpect
 Diagnostic information for MisExpect analysis. More...
 
class  llvm::DiagnosticInfoSrcMgr
 Diagnostic information for SMDiagnostic reporting. More...
 
class  llvm::DiagnosticInfoDontCall
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

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_Lowering , 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_SrcMgr , llvm::DK_DontCall , llvm::DK_MisExpect ,
  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.
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef > S)
 Allow the insertion operator to return the actual remark type rather than a common base class.
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, StringRef > S)
 Also allow r-value for the remark to allow insertion into a temporarily-constructed remark.
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument > A)
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::Argument > A)
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose > V)
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &&R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setIsVerbose > V)
 
template<class RemarkT >
RemarkT & llvm::operator<< (RemarkT &R, std::enable_if_t< std::is_base_of< DiagnosticInfoOptimizationBase, RemarkT >::value, DiagnosticInfoOptimizationBase::setExtraArgs > EA)
 
static DiagnosticSeverity llvm::getDiagnosticSeverity (SourceMgr::DiagKind DK)
 
void llvm::diagnoseDontCall (const CallInst &CI)