mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-31 07:43:37 +00:00
Revert "[llc] New diagnostic handler"
This reverts commit r269563. Even though now it passes all LLDB bots after a local fix, there's a new buildbot it fails with tests that we hadn't seen locally: http://lab.llvm.org:8011/builders/clang-x86_64-linux-selfhost-modules/builds/15647 Adding those tests to the list to investigate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@269568 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
92a36504fa
commit
7e38263edc
@ -34,7 +34,7 @@ class Module;
|
||||
class SMDiagnostic;
|
||||
|
||||
/// \brief Defines the different supported severity of a diagnostic.
|
||||
enum DiagnosticSeverity : char {
|
||||
enum DiagnosticSeverity {
|
||||
DS_Error,
|
||||
DS_Warning,
|
||||
DS_Remark,
|
||||
|
@ -29,7 +29,6 @@ class MDString;
|
||||
class DICompositeType;
|
||||
class SMDiagnostic;
|
||||
class DiagnosticInfo;
|
||||
enum DiagnosticSeverity : char;
|
||||
template <typename T> class SmallVectorImpl;
|
||||
class Function;
|
||||
class DebugLoc;
|
||||
@ -173,10 +172,6 @@ public:
|
||||
/// setDiagnosticContext.
|
||||
void *getDiagnosticContext() const;
|
||||
|
||||
/// \brief Get the prefix that should be printed in front of a diagnostic of
|
||||
/// the given \p Severity
|
||||
static const char *getDiagnosticMessagePrefix(DiagnosticSeverity Severity);
|
||||
|
||||
/// \brief Report a message to the currently installed diagnostic handler.
|
||||
///
|
||||
/// This function returns, in particular in the case of error reporting
|
||||
|
@ -231,8 +231,7 @@ static bool isDiagnosticEnabled(const DiagnosticInfo &DI) {
|
||||
return true;
|
||||
}
|
||||
|
||||
const char *
|
||||
LLVMContext::getDiagnosticMessagePrefix(DiagnosticSeverity Severity) {
|
||||
static const char *getDiagnosticMessagePrefix(DiagnosticSeverity Severity) {
|
||||
switch (Severity) {
|
||||
case DS_Error:
|
||||
return "error";
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=arm64 -exit-on-error < %s 2> %t
|
||||
; RUN: not llc -march=arm64 < %s 2> %t
|
||||
; RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
|
||||
|
||||
; Check for at least one invalid constant.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=arm64 -exit-on-error < %s 2> %t
|
||||
; RUN: not llc -march=arm64 < %s 2> %t
|
||||
; RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
|
||||
|
||||
; Check for at least one invalid constant.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=arm64 -exit-on-error < %s 2> %t
|
||||
; RUN: not llc -march=arm64 < %s 2> %t
|
||||
; RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
|
||||
|
||||
; Check for at least one invalid constant.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=arm64 -exit-on-error < %s 2> %t
|
||||
; RUN: not llc -march=arm64 < %s 2> %t
|
||||
; RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
|
||||
|
||||
; Check for at least one invalid constant.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=arm64 -exit-on-error < %s 2> %t
|
||||
; RUN: not llc -march=arm64 < %s 2> %t
|
||||
; RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
|
||||
|
||||
; Check for at least one invalid constant.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=arm64 -exit-on-error < %s 2> %t
|
||||
; RUN: not llc -march=arm64 < %s 2> %t
|
||||
; RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
|
||||
|
||||
; Check for at least one invalid constant.
|
||||
|
@ -1,6 +1,6 @@
|
||||
; RUN: not llc -march=amdgcn -mcpu=SI -verify-machineinstrs -exit-on-error < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=amdgcn -mcpu=tonga -verify-machineinstrs -exit-on-error < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=r600 -mcpu=cypress -exit-on-error < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=amdgcn -mcpu=SI -verify-machineinstrs< %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=amdgcn -mcpu=tonga -verify-machineinstrs< %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=r600 -mcpu=cypress < %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: in function test_call_external{{.*}}: unsupported call to function external_function
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
; RUN: not llc -march=amdgcn -mcpu=tahiti -mattr=+promote-alloca -verify-machineinstrs -exit-on-error < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=amdgcn -mcpu=tahiti -mattr=-promote-alloca -verify-machineinstrs -exit-on-error < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=r600 -mcpu=cypress -exit-on-error < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=amdgcn -mcpu=tahiti -mattr=+promote-alloca -verify-machineinstrs < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=amdgcn -mcpu=tahiti -mattr=-promote-alloca -verify-machineinstrs < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=r600 -mcpu=cypress < %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: in function test_dynamic_stackalloc{{.*}}: unsupported dynamic alloca
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=amdgcn -mtriple=amdgcn-unknown-amdhsa -exit-on-error < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=amdgcn -mtriple=amdgcn-unknown-amdhsa < %s 2>&1 | FileCheck %s
|
||||
|
||||
; CHECK: in function pixel_s{{.*}}: unsupported non-compute shaders with HSA
|
||||
define amdgpu_ps void @pixel_shader() #0 {
|
||||
|
@ -1,5 +1,5 @@
|
||||
; RUN: not llc -verify-machineinstrs -march=amdgcn -mcpu=SI -exit-on-error %s -o /dev/null 2>&1 | FileCheck %s
|
||||
; RUN: not llc -verify-machineinstrs -march=amdgcn -mcpu=tonga -exit-on-error %s -o /dev/null 2>&1 | FileCheck %s
|
||||
; RUN: not llc -verify-machineinstrs -march=amdgcn -mcpu=SI %s -o /dev/null 2>&1 | FileCheck %s
|
||||
; RUN: not llc -verify-machineinstrs -march=amdgcn -mcpu=tonga %s -o /dev/null 2>&1 | FileCheck %s
|
||||
|
||||
; Make sure promote alloca pass doesn't crash
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=amdgcn -exit-on-error < %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -march=amdgcn < %s 2>&1 | FileCheck %s
|
||||
|
||||
; Make sure that AMDGPUPromoteAlloca doesn't crash if the called
|
||||
; function is a constantexpr cast of a function.
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -mtriple=arm-eabi -mcpu=cortex-a8 -exit-on-error %s -o - 2>&1 | FileCheck %s
|
||||
; RUN: not llc -mtriple=arm-eabi -mcpu=cortex-a8 %s -o - 2>&1 | FileCheck %s
|
||||
|
||||
; Check for error message:
|
||||
; CHECK: scalar-to-vector conversion failed, possible invalid constraint for vector type
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=bpf -exit-on-error < %s 2> %t1
|
||||
; RUN: not llc -march=bpf < %s 2> %t1
|
||||
; RUN: FileCheck %s < %t1
|
||||
; CHECK: too many args
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=bpf -exit-on-error < %s 2> %t1
|
||||
; RUN: not llc -march=bpf < %s 2> %t1
|
||||
; RUN: FileCheck %s < %t1
|
||||
; CHECK: too many args
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=bpf -exit-on-error < %s 2> %t1
|
||||
; RUN: not llc -march=bpf < %s 2> %t1
|
||||
; RUN: FileCheck %s < %t1
|
||||
; CHECK: only integer returns
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -march=bpf -exit-on-error < %s 2> %t1
|
||||
; RUN: not llc -march=bpf < %s 2> %t1
|
||||
; RUN: FileCheck %s < %t1
|
||||
; CHECK: only small returns
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
--- |
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# This test ensures an error is reported if the embedded LLVM IR contains an
|
||||
# error.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# This test ensures that an error is reported when the mir file has LLVM IR and
|
||||
# one of the machine functions has a name that doesn't match any function in
|
||||
# the LLVM IR.
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# This test ensures that an error is reported when a machine function doesn't
|
||||
# have a name attribute.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# RUN: not llc -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# This test ensures that the machine function errors are reported correctly.
|
||||
|
||||
---
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
--- |
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||
|
||||
--- |
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
# RUN: not llc -march=x86-64 -start-after branch-folder -stop-after branch-folder -o /dev/null %s 2>&1 | FileCheck %s
|
||||
--- |
|
||||
|
||||
define i32 @test(i32 %a) {
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -mcpu=pwr7 -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -mcpu=pwr7 -o /dev/null %s 2>&1 | FileCheck %s
|
||||
target datalayout = "E-m:e-i64:64-n32:64"
|
||||
target triple = "powerpc64-unknown-linux-gnu"
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -mcpu=pwr7 -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -mcpu=pwr7 -o /dev/null %s 2>&1 | FileCheck %s
|
||||
target datalayout = "E-m:e-i64:64-n32:64"
|
||||
target triple = "powerpc64-unknown-linux-gnu"
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
; RUN: not llc -exit-on-error -o /dev/null %s 2>&1 | FileCheck %s
|
||||
; RUN: not llc -o /dev/null %s 2>&1 | FileCheck %s
|
||||
target triple = "x86_64--"
|
||||
|
||||
; CHECK: error: couldn't allocate output register for constraint '{ax}'
|
||||
|
@ -25,8 +25,6 @@
|
||||
#include "llvm/CodeGen/MachineModuleInfo.h"
|
||||
#include "llvm/CodeGen/TargetPassConfig.h"
|
||||
#include "llvm/IR/DataLayout.h"
|
||||
#include "llvm/IR/DiagnosticInfo.h"
|
||||
#include "llvm/IR/DiagnosticPrinter.h"
|
||||
#include "llvm/IR/IRPrintingPasses.h"
|
||||
#include "llvm/IR/LLVMContext.h"
|
||||
#include "llvm/IR/LegacyPassManager.h"
|
||||
@ -113,11 +111,6 @@ static cl::opt<bool> DiscardValueNames(
|
||||
cl::desc("Discard names from Value (other than GlobalValue)."),
|
||||
cl::init(false), cl::Hidden);
|
||||
|
||||
static cl::opt<bool> ExitOnError(
|
||||
"exit-on-error",
|
||||
cl::desc("Exit as soon as an error is encountered."),
|
||||
cl::init(false), cl::Hidden);
|
||||
|
||||
static int compileModule(char **, LLVMContext &);
|
||||
|
||||
static std::unique_ptr<tool_output_file>
|
||||
@ -188,17 +181,6 @@ GetOutputStream(const char *TargetName, Triple::OSType OS,
|
||||
return FDOut;
|
||||
}
|
||||
|
||||
static void DiagnosticHandler(const DiagnosticInfo &DI, void *Context) {
|
||||
bool *HasError = static_cast<bool *>(Context);
|
||||
if (DI.getSeverity() == DS_Error)
|
||||
*HasError = true;
|
||||
|
||||
DiagnosticPrinterRawOStream DP(errs());
|
||||
errs() << LLVMContext::getDiagnosticMessagePrefix(DI.getSeverity()) << ": ";
|
||||
DI.print(DP);
|
||||
errs() << "\n";
|
||||
}
|
||||
|
||||
// main - Entry point for the llc compiler.
|
||||
//
|
||||
int main(int argc, char **argv) {
|
||||
@ -233,12 +215,6 @@ int main(int argc, char **argv) {
|
||||
|
||||
Context.setDiscardValueNames(DiscardValueNames);
|
||||
|
||||
// Set a diagnostic handler that doesn't exit on the first error
|
||||
if (!ExitOnError) {
|
||||
bool HasError = false;
|
||||
Context.setDiagnosticHandler(DiagnosticHandler, &HasError);
|
||||
}
|
||||
|
||||
// Compile the module TimeCompilations times to give better compile time
|
||||
// metrics.
|
||||
for (unsigned I = TimeCompilations; I; --I)
|
||||
@ -465,12 +441,6 @@ static int compileModule(char **argv, LLVMContext &Context) {
|
||||
|
||||
PM.run(*M);
|
||||
|
||||
if (!ExitOnError) {
|
||||
auto HasError = *static_cast<bool *>(Context.getDiagnosticContext());
|
||||
if (HasError)
|
||||
return 1;
|
||||
}
|
||||
|
||||
// Compare the two outputs and make sure they're the same
|
||||
if (CompileTwice) {
|
||||
if (Buffer.size() != CompileTwiceBuffer.size() ||
|
||||
|
Loading…
x
Reference in New Issue
Block a user