003 File Manager
Current Path:
/usr/src/contrib/llvm-project/llvm/lib/Remarks
usr
/
src
/
contrib
/
llvm-project
/
llvm
/
lib
/
Remarks
/
📁
..
📄
BitstreamRemarkParser.cpp
(20.63 KB)
📄
BitstreamRemarkParser.h
(3.13 KB)
📄
BitstreamRemarkSerializer.cpp
(13.95 KB)
📄
Remark.cpp
(3.8 KB)
📄
RemarkFormat.cpp
(1.81 KB)
📄
RemarkLinker.cpp
(3.97 KB)
📄
RemarkParser.cpp
(6.46 KB)
📄
RemarkSerializer.cpp
(2.2 KB)
📄
RemarkStreamer.cpp
(2.27 KB)
📄
RemarkStringTable.cpp
(2.17 KB)
📄
YAMLRemarkParser.cpp
(15.14 KB)
📄
YAMLRemarkParser.h
(4.07 KB)
📄
YAMLRemarkSerializer.cpp
(9.27 KB)
Editing: RemarkStreamer.cpp
//===- llvm/Remarks/RemarkStreamer.cpp - Remark Streamer -*- 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 // //===----------------------------------------------------------------------===// // // This file contains the implementation of the main remark streamer. // //===----------------------------------------------------------------------===// #include "llvm/Remarks/RemarkStreamer.h" #include "llvm/Support/CommandLine.h" using namespace llvm; using namespace llvm::remarks; static cl::opt<cl::boolOrDefault> EnableRemarksSection( "remarks-section", cl::desc( "Emit a section containing remark diagnostics metadata. By default, " "this is enabled for the following formats: yaml-strtab, bitstream."), cl::init(cl::BOU_UNSET), cl::Hidden); RemarkStreamer::RemarkStreamer( std::unique_ptr<remarks::RemarkSerializer> RemarkSerializer, Optional<StringRef> FilenameIn) : PassFilter(), RemarkSerializer(std::move(RemarkSerializer)), Filename(FilenameIn ? Optional<std::string>(FilenameIn->str()) : None) {} Error RemarkStreamer::setFilter(StringRef Filter) { Regex R = Regex(Filter); std::string RegexError; if (!R.isValid(RegexError)) return createStringError(std::make_error_code(std::errc::invalid_argument), RegexError.data()); PassFilter = std::move(R); return Error::success(); } bool RemarkStreamer::matchesFilter(StringRef Str) { if (PassFilter) return PassFilter->match(Str); // No filter means all strings pass. return true; } bool RemarkStreamer::needsSection() const { if (EnableRemarksSection == cl::BOU_TRUE) return true; if (EnableRemarksSection == cl::BOU_FALSE) return false; assert(EnableRemarksSection == cl::BOU_UNSET); // We only need a section if we're in separate mode. if (RemarkSerializer->Mode != remarks::SerializerMode::Separate) return false; // Only some formats need a section: // * bitstream // * yaml-strtab switch (RemarkSerializer->SerializerFormat) { case remarks::Format::YAMLStrTab: case remarks::Format::Bitstream: return true; default: return false; } }
Upload File
Create Folder