mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-13 12:36:47 +00:00
Output LLVM optimization remark kind in -Cremark
output
This commit is contained in:
parent
6f8c0557e0
commit
00ac29d7b2
@ -82,7 +82,7 @@ codegen_llvm_prepare_thin_lto_module_with_llvm_err = failed to prepare thin LTO
|
||||
codegen_llvm_parse_bitcode = failed to parse bitcode for LTO module
|
||||
codegen_llvm_parse_bitcode_with_llvm_err = failed to parse bitcode for LTO module: {$llvm_err}
|
||||
|
||||
codegen_llvm_from_llvm_optimization_diag = {$filename}:{$line}:{$column} {$pass_name}: {$message}
|
||||
codegen_llvm_from_llvm_optimization_diag = {$filename}:{$line}:{$column} {$pass_name} ({$kind}): {$message}
|
||||
codegen_llvm_from_llvm_diag = {$message}
|
||||
|
||||
codegen_llvm_write_bytecode = failed to write bytecode to {$path}: {$err}
|
||||
|
@ -31,6 +31,7 @@ use rustc_span::symbol::sym;
|
||||
use rustc_span::InnerSpan;
|
||||
use rustc_target::spec::{CodeModel, RelocModel, SanitizerSet, SplitDebuginfo};
|
||||
|
||||
use crate::llvm::diagnostic::OptimizationDiagnosticKind;
|
||||
use libc::{c_char, c_int, c_uint, c_void, size_t};
|
||||
use std::ffi::CString;
|
||||
use std::fs;
|
||||
@ -363,6 +364,15 @@ unsafe extern "C" fn diagnostic_handler(info: &DiagnosticInfo, user: *mut c_void
|
||||
line: opt.line,
|
||||
column: opt.column,
|
||||
pass_name: &opt.pass_name,
|
||||
kind: match opt.kind {
|
||||
OptimizationDiagnosticKind::OptimizationRemark => "success",
|
||||
OptimizationDiagnosticKind::OptimizationMissed
|
||||
| OptimizationDiagnosticKind::OptimizationFailure => "missed",
|
||||
OptimizationDiagnosticKind::OptimizationAnalysis
|
||||
| OptimizationDiagnosticKind::OptimizationAnalysisFPCommute
|
||||
| OptimizationDiagnosticKind::OptimizationAnalysisAliasing => "analysis",
|
||||
OptimizationDiagnosticKind::OptimizationRemarkOther => "other",
|
||||
},
|
||||
message: &opt.message,
|
||||
});
|
||||
}
|
||||
|
@ -195,6 +195,7 @@ pub(crate) struct FromLlvmOptimizationDiag<'a> {
|
||||
pub line: std::ffi::c_uint,
|
||||
pub column: std::ffi::c_uint,
|
||||
pub pass_name: &'a str,
|
||||
pub kind: &'a str,
|
||||
pub message: &'a str,
|
||||
}
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
// [merge1] compile-flags: -Cremark=all -Cremark=giraffe
|
||||
// [merge2] compile-flags: -Cremark=inline -Cremark=giraffe
|
||||
//
|
||||
// error-pattern: inline: 'f' not inlined into 'g'
|
||||
// error-pattern: inline (missed): 'f' not inlined into 'g'
|
||||
// dont-check-compiler-stderr
|
||||
|
||||
#[no_mangle]
|
||||
|
Loading…
Reference in New Issue
Block a user