//===-- Error.h -------------------------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_TOOLS_LLVM_EXEGESIS_ERROR_H #define LLVM_TOOLS_LLVM_EXEGESIS_ERROR_H #include "llvm/ADT/Twine.h" #include "llvm/Support/Error.h" namespace llvm { namespace exegesis { // A class representing failures that happened within llvm-exegesis, they are // used to report informations to the user. class Failure : public StringError { … }; // A class representing failures that happened during clustering calculations. class ClusteringError : public ErrorInfo<ClusteringError> { … }; // A class representing a non-descript snippet execution failure. This class // is designed to sub-classed into more specific failures that contain // additional data about the specific error that they represent. Instead of // halting the program, the errors are reported in the output. class SnippetExecutionFailure : public ErrorInfo<SnippetExecutionFailure> { … }; // A class representing specifically segmentation faults that happen during // snippet execution. class SnippetSegmentationFault : public SnippetExecutionFailure { … }; // A class representing all other non-specific failures that happen during // snippet execution. class SnippetSignal : public SnippetExecutionFailure { … }; } // namespace exegesis } // namespace llvm #endif