Rollup merge of #146905 - durin42:llvm-22-bitstream-remarks, r=nikic
llvm: update remarks support on LLVM 22 LLVM change dfbd76bda01e removed separate remark support entirely, but it turns out we can just drop the parameter and everything appears to work fine. Fixes rust-lang/rust#146912 as far as I can tell (the test passes.)
This commit is contained in:
commit
2565b27cc0
1 changed files with 13 additions and 0 deletions
|
|
@ -1685,6 +1685,14 @@ extern "C" void LLVMRustContextConfigureDiagnosticHandler(
|
|||
RemarkStreamer(std::move(RemarkStreamer)),
|
||||
LlvmRemarkStreamer(std::move(LlvmRemarkStreamer)) {}
|
||||
|
||||
#if LLVM_VERSION_GE(22, 0)
|
||||
~RustDiagnosticHandler() {
|
||||
if (RemarkStreamer) {
|
||||
RemarkStreamer->releaseSerializer();
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
virtual bool handleDiagnostics(const DiagnosticInfo &DI) override {
|
||||
// If this diagnostic is one of the optimization remark kinds, we can
|
||||
// check if it's enabled before emitting it. This can avoid many
|
||||
|
|
@ -1779,9 +1787,14 @@ extern "C" void LLVMRustContextConfigureDiagnosticHandler(
|
|||
// Do not delete the file after we gather remarks
|
||||
RemarkFile->keep();
|
||||
|
||||
#if LLVM_VERSION_GE(22, 0)
|
||||
auto RemarkSerializer = remarks::createRemarkSerializer(
|
||||
llvm::remarks::Format::YAML, RemarkFile->os());
|
||||
#else
|
||||
auto RemarkSerializer = remarks::createRemarkSerializer(
|
||||
llvm::remarks::Format::YAML, remarks::SerializerMode::Separate,
|
||||
RemarkFile->os());
|
||||
#endif
|
||||
if (Error E = RemarkSerializer.takeError()) {
|
||||
std::string Error = std::string("Cannot create remark serializer: ") +
|
||||
toString(std::move(E));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue