[llvm] r367370 - Revert "[Remarks] Add an LLVM-bitstream-based remark serializer"

Francis Visoiu Mistrih via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 30 17:01:34 PDT 2019


Author: thegameg
Date: Tue Jul 30 17:01:34 2019
New Revision: 367370

URL: http://llvm.org/viewvc/llvm-project?rev=367370&view=rev
Log:
Revert "[Remarks] Add an LLVM-bitstream-based remark serializer"

This reverts commit r367364.

Breaks some bots: http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-gn/builds/3161/steps/annotate/logs/stdio

Removed:
    llvm/trunk/include/llvm/Remarks/BitstreamRemarkContainer.h
    llvm/trunk/include/llvm/Remarks/BitstreamRemarkSerializer.h
    llvm/trunk/lib/Remarks/BitstreamRemarkSerializer.cpp
    llvm/trunk/test/Bitcode/stream-types.c.opt.bitstream
    llvm/trunk/unittests/Remarks/BitstreamRemarksFormatTest.cpp
    llvm/trunk/unittests/Remarks/BitstreamRemarksSerializerTest.cpp
Modified:
    llvm/trunk/docs/Remarks.rst
    llvm/trunk/include/llvm/Bitcode/BitcodeAnalyzer.h
    llvm/trunk/include/llvm/Remarks/Remark.h
    llvm/trunk/include/llvm/Remarks/RemarkFormat.h
    llvm/trunk/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
    llvm/trunk/lib/IR/RemarkStreamer.cpp
    llvm/trunk/lib/Remarks/CMakeLists.txt
    llvm/trunk/lib/Remarks/RemarkFormat.cpp
    llvm/trunk/lib/Remarks/RemarkParser.cpp
    llvm/trunk/lib/Remarks/RemarkSerializer.cpp
    llvm/trunk/lib/Remarks/YAMLRemarkParser.cpp
    llvm/trunk/lib/Remarks/YAMLRemarkSerializer.cpp
    llvm/trunk/test/Bitcode/stream-types.c
    llvm/trunk/unittests/Remarks/CMakeLists.txt

Modified: llvm/trunk/docs/Remarks.rst
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/docs/Remarks.rst?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/docs/Remarks.rst (original)
+++ llvm/trunk/docs/Remarks.rst Tue Jul 30 17:01:34 2019
@@ -113,7 +113,6 @@ following options:
 
       * :ref:`yaml <yamlremarks>` (default)
       * :ref:`yaml-strtab <yamlstrtabremarks>`
-      * :ref:`bitstream <bitstreamremarks>`
 
 ``Content configuration``
 
@@ -261,250 +260,6 @@ should be present and point to the file
 In case the metadata only acts as a header to the remarks, the file path can be
 omitted.
 
-.. _bitstreamremarks:
-
-LLVM bitstream remarks
-======================
-
-This format is using :doc:`LLVM bitstream <BitCodeFormat>` to serialize remarks
-and their associated metadata.
-
-A bitstream remark stream can be identified by the magic number ``"RMRK"`` that
-is placed at the very beginning.
-
-The format for serializing remarks is composed of two different block types:
-
-.. _bitstreamremarksmetablock:
-
-META_BLOCK
-----------
-
-The block providing information about the rest of the content in the stream.
-
-Exactly one block is expected. Having multiple metadata blocks is an error.
-
-This block can contain the following records:
-
-.. _bitstreamremarksrecordmetacontainerinfo:
-
-``RECORD_META_CONTAINER_INFO``
-
-    The container version and type.
-
-    Version: u32
-
-    Type:    u2
-
-.. _bitstreamremarksrecordmetaremarkversion:
-
-``RECORD_META_REMARK_VERSION``
-
-    The version of the remark entries. This can change independently from the
-    container version.
-
-    Version: u32
-
-.. _bitstreamremarksrecordmetastrtab:
-
-``RECORD_META_STRTAB``
-
-    The string table used by the remark entries. The format of the string table
-    is a sequence of strings separated by ``\0``.
-
-.. _bitstreamremarksrecordmetaexternalfile:
-
-``RECORD_META_EXTERNAL_FILE``
-
-    The external remark file path that contains the remark blocks associated
-    with this metadata. This is an absolute path.
-
-.. _bitstreamremarksremarkblock:
-
-REMARK_BLOCK
-------------
-
-The block describing a remark entry.
-
-0 or more blocks per file are allowed. Each block will depend on the
-:ref:`META_BLOCK <bitstreamremarksmetablock>` in order to be parsed correctly.
-
-This block can contain the following records:
-
-``RECORD_REMARK_HEADER``
-
-    The header of the remark. This contains all the mandatory information about
-    a remark.
-
-    +---------------+---------------------------+
-    | Type          | u3                        |
-    +---------------+---------------------------+
-    | Remark name   | VBR6 (string table index) |
-    +---------------+---------------------------+
-    | Pass name     | VBR6 (string table index) |
-    +---------------+---------------------------+
-    | Function name | VBR6 (string table index) |
-    +---------------+---------------------------+
-
-``RECORD_REMARK_DEBUG_LOC``
-
-    The source location for the corresponding remark. This record is optional.
-
-    +--------+---------------------------+
-    | File   | VBR7 (string table index) |
-    +--------+---------------------------+
-    | Line   | u32                       |
-    +--------+---------------------------+
-    | Column | u32                       |
-    +--------+---------------------------+
-
-``RECORD_REMARK_HOTNESS``
-
-    The hotness of the remark. This record is optional.
-
-    +---------------+---------------------+
-    | Hotness | VBR8 (string table index) |
-    +---------------+---------------------+
-
-``RECORD_REMARK_ARG_WITH_DEBUGLOC``
-
-    A remark argument with an associated debug location.
-
-    +--------+---------------------------+
-    | Key    | VBR7 (string table index) |
-    +--------+---------------------------+
-    | Value  | VBR7 (string table index) |
-    +--------+---------------------------+
-    | File   | VBR7 (string table index) |
-    +--------+---------------------------+
-    | Line   | u32                       |
-    +--------+---------------------------+
-    | Column | u32                       |
-    +--------+---------------------------+
-
-``RECORD_REMARK_ARG_WITHOUT_DEBUGLOC``
-
-    A remark argument with an associated debug location.
-
-    +--------+---------------------------+
-    | Key    | VBR7 (string table index) |
-    +--------+---------------------------+
-    | Value  | VBR7 (string table index) |
-    +--------+---------------------------+
-
-The remark container
---------------------
-
-Bitstream remarks are designed to be used in two different modes:
-
-``The separate mode``
-
-    The separate mode is the mode that is typically used during compilation. It
-    provides a way to serialize the remark entries to a stream while some
-    metadata is kept in memory to be emitted in the product of the compilation
-    (typically, an object file).
-
-``The standalone mode``
-
-    The standalone mode is typically stored and used after the distribution of
-    a program. It contains all the information that allows the parsing of all
-    the remarks without having any external dependencies.
-
-In order to support multiple modes, the format introduces the concept of a
-bitstream remark container type.
-
-.. _bitstreamremarksseparateremarksmeta:
-
-``SeparateRemarksMeta: the metadata emitted separately``
-
-    This container type expects only a :ref:`META_BLOCK <bitstreamremarksmetablock>` containing only:
-
-    * :ref:`RECORD_META_CONTAINER_INFO <bitstreamremarksrecordmetacontainerinfo>`
-    * :ref:`RECORD_META_STRTAB <bitstreamremarksrecordmetastrtab>`
-    * :ref:`RECORD_META_EXTERNAL_FILE <bitstreamremarksrecordmetaexternalfile>`
-
-    Typically, this is emitted in a section in the object files, allowing
-    clients to retrieve remarks and their associated metadata directly from
-    intermediate products.
-
-``SeparateRemarksFile: the remark entries emitted separately``
-
-    This container type expects only a :ref:`META_BLOCK <bitstreamremarksmetablock>` containing only:
-
-    * :ref:`RECORD_META_CONTAINER_INFO <bitstreamremarksrecordmetacontainerinfo>`
-    * :ref:`RECORD_META_REMARK_VERSION <bitstreamremarksrecordmetaremarkversion>`
-
-    This container type expects 0 or more :ref:`REMARK_BLOCK <bitstreamremarksremarkblock>`.
-
-    Typically, this is emitted in a side-file alongside an object file, and is
-    made to be able to stream to without increasing the memory consumption of
-    the compiler. This is referenced by the :ref:`RECORD_META_EXTERNAL_FILE
-    <bitstreamremarksrecordmetaexternalfile>` entry in the
-    :ref:`SeparateRemarksMeta <bitstreamremarksseparateremarksmeta>` container.
-
-When the parser tries to parse a container that contains the metadata for the
-separate remarks, it should parse the version and type, then keep the string
-table in memory while opening the external file, validating its metadata and
-parsing the remark entries.
-
-The container versions from the separate container should match in order to
-have a well-formed file.
-
-``Standalone: the metadata and the remark entries emitted together``
-
-    This container type expects only a :ref:`META_BLOCK <bitstreamremarksmetablock>` containing only:
-
-    * :ref:`RECORD_META_CONTAINER_INFO <bitstreamremarksrecordmetacontainerinfo>`
-    * :ref:`RECORD_META_REMARK_VERSION <bitstreamremarksrecordmetaremarkversion>`
-    * :ref:`RECORD_META_STRTAB <bitstreamremarksrecordmetastrtab>`
-
-    This container type expects 0 or more :ref:`REMARK_BLOCK <bitstreamremarksremarkblock>`.
-
-A complete output of :program:`llvm-bcanalyzer` on the different container types:
-
-``SeparateRemarksMeta``
-
-.. code-block:: none
-
-    <BLOCKINFO_BLOCK/>
-    <Meta BlockID=8 NumWords=13 BlockCodeSize=3>
-      <Container info codeid=1 abbrevid=4 op0=5 op1=0/>
-      <String table codeid=3 abbrevid=5/> blob data = 'pass\\x00key\\x00value\\x00'
-      <External File codeid=4 abbrevid=6/> blob data = '/path/to/file/name'
-    </Meta>
-
-``SeparateRemarksFile``
-
-.. code-block:: none
-
-    <BLOCKINFO_BLOCK/>
-    <Meta BlockID=8 NumWords=3 BlockCodeSize=3>
-      <Container info codeid=1 abbrevid=4 op0=0 op1=1/>
-      <Remark version codeid=2 abbrevid=5 op0=0/>
-    </Meta>
-    <Remark BlockID=9 NumWords=8 BlockCodeSize=4>
-      <Remark header codeid=5 abbrevid=4 op0=2 op1=0 op2=1 op3=2/>
-      <Remark debug location codeid=6 abbrevid=5 op0=3 op1=99 op2=55/>
-      <Remark hotness codeid=7 abbrevid=6 op0=999999999/>
-      <Argument with debug location codeid=8 abbrevid=7 op0=4 op1=5 op2=6 op3=11 op4=66/>
-    </Remark>
-
-``Standalone``
-
-.. code-block:: none
-
-    <BLOCKINFO_BLOCK/>
-    <Meta BlockID=8 NumWords=15 BlockCodeSize=3>
-      <Container info codeid=1 abbrevid=4 op0=5 op1=2/>
-      <Remark version codeid=2 abbrevid=5 op0=30/>
-      <String table codeid=3 abbrevid=6/> blob data = 'pass\\x00remark\\x00function\\x00path\\x00key\\x00value\\x00argpath\\x00'
-    </Meta>
-    <Remark BlockID=9 NumWords=8 BlockCodeSize=4>
-      <Remark header codeid=5 abbrevid=4 op0=2 op1=1 op2=0 op3=2/>
-      <Remark debug location codeid=6 abbrevid=5 op0=3 op1=99 op2=55/>
-      <Remark hotness codeid=7 abbrevid=6 op0=999999999/>
-      <Argument with debug location codeid=8 abbrevid=7 op0=4 op1=5 op2=6 op3=11 op4=66/>
-    </Remark>
-
 opt-viewer
 ==========
 

Modified: llvm/trunk/include/llvm/Bitcode/BitcodeAnalyzer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Bitcode/BitcodeAnalyzer.h?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Bitcode/BitcodeAnalyzer.h (original)
+++ llvm/trunk/include/llvm/Bitcode/BitcodeAnalyzer.h Tue Jul 30 17:01:34 2019
@@ -30,7 +30,6 @@ enum CurStreamTypeType {
   LLVMIRBitstream,
   ClangSerializedASTBitstream,
   ClangSerializedDiagnosticsBitstream,
-  LLVMBitstreamRemarks
 };
 
 struct BCDumpOptions {

Removed: llvm/trunk/include/llvm/Remarks/BitstreamRemarkContainer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Remarks/BitstreamRemarkContainer.h?rev=367369&view=auto
==============================================================================
--- llvm/trunk/include/llvm/Remarks/BitstreamRemarkContainer.h (original)
+++ llvm/trunk/include/llvm/Remarks/BitstreamRemarkContainer.h (removed)
@@ -1,106 +0,0 @@
-//===-- BitstreamRemarkContainer.h - Container for remarks --------------*-===//
-//
-// 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 provides declarations for things used in the various types of
-// remark containers.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_REMARKS_REMARK_CONTAINER_H
-#define LLVM_REMARKS_REMARK_CONTAINER_H
-
-#include "llvm/ADT/StringRef.h"
-#include "llvm/Bitstream/BitCodes.h"
-#include <cstdint>
-
-namespace llvm {
-namespace remarks {
-
-/// The current version of the remark container.
-/// Note: this is different from the version of the remark entry.
-constexpr uint64_t CurrentContainerVersion = 0;
-/// The magic number used for identifying remark blocks.
-constexpr StringRef ContainerMagic("RMRK", 4);
-
-/// Type of the remark container.
-/// The remark container has two modes:
-/// * separate: the metadata is separate from the remarks and points to the
-///             auxiliary file that contains the remarks.
-/// * standalone: the metadata and the remarks are emitted together.
-enum class BitstreamRemarkContainerType {
-  /// The metadata emitted separately.
-  /// This will contain the following:
-  /// * Container version and type
-  /// * String table
-  /// * External file
-  SeparateRemarksMeta,
-  /// The remarks emitted separately.
-  /// This will contain the following:
-  /// * Container version and type
-  /// * Remark version
-  SeparateRemarksFile,
-  /// Everything is emitted together.
-  /// This will contain the following:
-  /// * Container version and type
-  /// * Remark version
-  /// * String table
-  Standalone,
-  First = SeparateRemarksMeta,
-  Last = Standalone,
-};
-
-/// The possible blocks that will be encountered in a bitstream remark
-/// container.
-enum BlockIDs {
-  /// The metadata block is mandatory. It should always come after the
-  /// BLOCKINFO_BLOCK, and contains metadata that should be used when parsing
-  /// REMARK_BLOCKs.
-  /// There should always be only one META_BLOCK.
-  META_BLOCK_ID = bitc::FIRST_APPLICATION_BLOCKID,
-  /// One remark entry is represented using a REMARK_BLOCK. There can be
-  /// multiple REMARK_BLOCKs in the same file.
-  REMARK_BLOCK_ID
-};
-
-constexpr StringRef MetaBlockName = StringRef("Meta", 4);
-constexpr StringRef RemarkBlockName = StringRef("Remark", 6);
-
-/// The possible records that can be encountered in the previously described
-/// blocks.
-enum RecordIDs {
-  // Meta block records.
-  RECORD_META_CONTAINER_INFO = 1,
-  RECORD_META_REMARK_VERSION,
-  RECORD_META_STRTAB,
-  RECORD_META_EXTERNAL_FILE,
-  // Remark block records.
-  RECORD_REMARK_HEADER,
-  RECORD_REMARK_DEBUG_LOC,
-  RECORD_REMARK_HOTNESS,
-  RECORD_REMARK_ARG_WITH_DEBUGLOC,
-  RECORD_REMARK_ARG_WITHOUT_DEBUGLOC,
-  // Helpers.
-  RECORD_FIRST = RECORD_META_CONTAINER_INFO,
-  RECORD_LAST = RECORD_REMARK_ARG_WITHOUT_DEBUGLOC
-};
-
-constexpr StringRef MetaContainerInfoName = StringRef("Container info", 14);
-constexpr StringRef MetaRemarkVersionName = StringRef("Remark version", 14);
-constexpr StringRef MetaStrTabName = StringRef("String table", 12);
-constexpr StringRef MetaExternalFileName = StringRef("External File", 13);
-constexpr StringRef RemarkHeaderName = StringRef("Remark header", 13);
-constexpr StringRef RemarkDebugLocName = StringRef("Remark debug location", 21);
-constexpr StringRef RemarkHotnessName = StringRef("Remark hotness", 14);
-constexpr StringRef RemarkArgWithDebugLocName =
-    StringRef("Argument with debug location", 28);
-constexpr StringRef RemarkArgWithoutDebugLocName = StringRef("Argument", 8);
-
-} // end namespace remarks
-} // end namespace llvm
-
-#endif /* LLVM_REMARKS_REMARK_CONTAINER_H */

Removed: llvm/trunk/include/llvm/Remarks/BitstreamRemarkSerializer.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Remarks/BitstreamRemarkSerializer.h?rev=367369&view=auto
==============================================================================
--- llvm/trunk/include/llvm/Remarks/BitstreamRemarkSerializer.h (original)
+++ llvm/trunk/include/llvm/Remarks/BitstreamRemarkSerializer.h (removed)
@@ -1,188 +0,0 @@
-//===-- BitstreamRemarkSerializer.h - Bitstream serializer ------*- 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 provides an implementation of the serializer using the LLVM
-// Bitstream format.
-//
-//===----------------------------------------------------------------------===//
-
-#ifndef LLVM_REMARKS_BITSTREAM_REMARK_SERIALIZER_H
-#define LLVM_REMARKS_BITSTREAM_REMARK_SERIALIZER_H
-
-#include "llvm/Bitstream/BitstreamWriter.h"
-#include "llvm/Remarks/BitstreamRemarkContainer.h"
-#include "llvm/Remarks/RemarkSerializer.h"
-#include "llvm/Support/raw_ostream.h"
-
-namespace llvm {
-namespace remarks {
-
-/// Serialize the remarks to LLVM bitstream.
-/// This class provides ways to emit remarks in the LLVM bitstream format and
-/// its associated metadata.
-///
-/// * The separate model:
-///   Separate meta:        | Container info
-///                         | String table
-///                         | External file
-///
-///   Separate remarks:     | Container info
-///                         | Remark version
-///                         | Remark0
-///                         | Remark1
-///                         | Remark2
-///                         | ...
-///
-/// * The standalone model: | Container info
-///                         | String table
-///                         | Remark version
-///                         | Remark0
-///                         | Remark1
-///                         | Remark2
-///                         | ...
-///
-struct BitstreamSerializerHelper {
-  /// Buffer used for encoding the bitstream before writing it to the final
-  /// stream.
-  SmallVector<char, 1024> Encoded;
-  /// Buffer used to construct records and pass to the bitstream writer.
-  SmallVector<uint64_t, 64> R;
-  /// The Bitstream writer.
-  BitstreamWriter Bitstream;
-  /// The type of the container we are serializing.
-  BitstreamRemarkContainerType ContainerType;
-
-  /// Abbrev IDs initialized in the block info block.
-  /// Note: depending on the container type, some IDs might be uninitialized.
-  /// Warning: When adding more abbrev IDs, make sure to update the
-  /// BlockCodeSize (in the call to EnterSubblock).
-  uint64_t RecordMetaContainerInfoAbbrevID = 0;
-  uint64_t RecordMetaRemarkVersionAbbrevID = 0;
-  uint64_t RecordMetaStrTabAbbrevID = 0;
-  uint64_t RecordMetaExternalFileAbbrevID = 0;
-  uint64_t RecordRemarkHeaderAbbrevID = 0;
-  uint64_t RecordRemarkDebugLocAbbrevID = 0;
-  uint64_t RecordRemarkHotnessAbbrevID = 0;
-  uint64_t RecordRemarkArgWithDebugLocAbbrevID = 0;
-  uint64_t RecordRemarkArgWithoutDebugLocAbbrevID = 0;
-
-  BitstreamSerializerHelper(BitstreamRemarkContainerType ContainerType);
-
-  // Disable copy and move: Bitstream points to Encoded, which needs special
-  // handling during copy/move, but moving the vectors is probably useless
-  // anyway.
-  BitstreamSerializerHelper(const BitstreamSerializerHelper &) = delete;
-  BitstreamSerializerHelper &
-  operator=(const BitstreamSerializerHelper &) = delete;
-  BitstreamSerializerHelper(BitstreamSerializerHelper &&) = delete;
-  BitstreamSerializerHelper &operator=(BitstreamSerializerHelper &&) = delete;
-
-  /// Set up the necessary block info entries according to the container type.
-  void setupBlockInfo();
-
-  /// Set up the block info for the metadata block.
-  void setupMetaBlockInfo();
-  /// The remark version in the metadata block.
-  void setupMetaRemarkVersion();
-  void emitMetaRemarkVersion(uint64_t RemarkVersion);
-  /// The strtab in the metadata block.
-  void setupMetaStrTab();
-  void emitMetaStrTab(const StringTable &StrTab);
-  /// The external file in the metadata block.
-  void setupMetaExternalFile();
-  void emitMetaExternalFile(StringRef Filename);
-
-  /// The block info for the remarks block.
-  void setupRemarkBlockInfo();
-
-  /// Emit the metadata for the remarks.
-  void emitMetaBlock(uint64_t ContainerVersion,
-                     Optional<uint64_t> RemarkVersion,
-                     Optional<const StringTable *> StrTab = None,
-                     Optional<StringRef> Filename = None);
-
-  /// Emit a remark block. The string table is required.
-  void emitRemarkBlock(const Remark &Remark, StringTable &StrTab);
-  /// Finalize the writing to \p OS.
-  void flushToStream(raw_ostream &OS);
-  /// Finalize the writing to a buffer.
-  /// The contents of the buffer remain valid for the lifetime of the object.
-  /// Any call to any other function in this class will invalidate the buffer.
-  StringRef getBuffer();
-};
-
-/// Implementation of the remark serializer using LLVM bitstream.
-struct BitstreamSerializer : public RemarkSerializer {
-  /// The file should contain:
-  /// 1) The block info block that describes how to read the blocks.
-  /// 2) The metadata block that contains various information about the remarks
-  ///    in the file.
-  /// 3) A number of remark blocks.
-
-  /// We need to set up 1) and 2) first, so that we can emit 3) after. This flag
-  /// is used to emit the first two blocks only once.
-  bool DidSetUp = false;
-  /// The helper to emit bitstream.
-  BitstreamSerializerHelper Helper;
-
-  /// Construct a serializer that will create its own string table.
-  BitstreamSerializer(raw_ostream &OS, SerializerMode Mode);
-  /// Construct a serializer with a pre-filled string table.
-  BitstreamSerializer(raw_ostream &OS, SerializerMode Mode, StringTable StrTab);
-
-  /// Emit a remark to the stream. This also emits the metadata associated to
-  /// the remarks based on the SerializerMode specified at construction.
-  /// This writes the serialized output to the provided stream.
-  void emit(const Remark &Remark) override;
-  /// The metadata serializer associated to this remark serializer. Based on the
-  /// container type of the current serializer, the container type of the
-  /// metadata serializer will change.
-  std::unique_ptr<MetaSerializer>
-  metaSerializer(raw_ostream &OS,
-                 Optional<StringRef> ExternalFilename = None) override;
-};
-
-/// Serializer of metadata for bitstream remarks.
-struct BitstreamMetaSerializer : public MetaSerializer {
-  /// This class can be used with [1] a pre-constructed
-  /// BitstreamSerializerHelper, or with [2] one that is owned by the meta
-  /// serializer. In case of [1], we need to be able to store a reference to the
-  /// object, while in case of [2] we need to store the whole object.
-  Optional<BitstreamSerializerHelper> TmpHelper;
-  /// The actual helper, that can point to \p TmpHelper or to an external helper
-  /// object.
-  BitstreamSerializerHelper *Helper = nullptr;
-
-  Optional<const StringTable *> StrTab;
-  Optional<StringRef> ExternalFilename;
-
-  /// Create a new meta serializer based on \p ContainerType.
-  BitstreamMetaSerializer(raw_ostream &OS,
-                          BitstreamRemarkContainerType ContainerType,
-                          Optional<const StringTable *> StrTab = None,
-                          Optional<StringRef> ExternalFilename = None)
-      : MetaSerializer(OS), TmpHelper(None), Helper(nullptr), StrTab(StrTab),
-        ExternalFilename(ExternalFilename) {
-    TmpHelper.emplace(ContainerType);
-    Helper = &*TmpHelper;
-  }
-
-  /// Create a new meta serializer based on a previously built \p Helper.
-  BitstreamMetaSerializer(raw_ostream &OS, BitstreamSerializerHelper &Helper,
-                          Optional<const StringTable *> StrTab = None,
-                          Optional<StringRef> ExternalFilename = None)
-      : MetaSerializer(OS), TmpHelper(None), Helper(&Helper), StrTab(StrTab),
-        ExternalFilename(ExternalFilename) {}
-
-  void emit() override;
-};
-
-} // end namespace remarks
-} // end namespace llvm
-
-#endif /* LLVM_REMARKS_BITSTREAM_REMARK_SERIALIZER_H */

Modified: llvm/trunk/include/llvm/Remarks/Remark.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Remarks/Remark.h?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Remarks/Remark.h (original)
+++ llvm/trunk/include/llvm/Remarks/Remark.h Tue Jul 30 17:01:34 2019
@@ -23,8 +23,7 @@
 namespace llvm {
 namespace remarks {
 
-/// The current version of the remark entry.
-constexpr uint64_t CurrentRemarkVersion = 0;
+constexpr uint64_t Version = 0;
 
 /// The debug location used to track a remark back to the source file.
 struct RemarkLocation {
@@ -59,8 +58,7 @@ enum class Type {
   AnalysisFPCommute,
   AnalysisAliasing,
   Failure,
-  First = Unknown,
-  Last = Failure
+  LastTypeValue = Failure
 };
 
 /// A remark type used for both emission and parsing.

Modified: llvm/trunk/include/llvm/Remarks/RemarkFormat.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Remarks/RemarkFormat.h?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/include/llvm/Remarks/RemarkFormat.h (original)
+++ llvm/trunk/include/llvm/Remarks/RemarkFormat.h Tue Jul 30 17:01:34 2019
@@ -22,7 +22,7 @@ namespace remarks {
 constexpr StringRef Magic("REMARKS", 7);
 
 /// The format used for serializing/deserializing remarks.
-enum class Format { Unknown, YAML, YAMLStrTab, Bitstream };
+enum class Format { Unknown, YAML, YAMLStrTab };
 
 /// Parse and validate a string for the remark format.
 Expected<Format> parseFormat(StringRef FormatStr);

Modified: llvm/trunk/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Bitcode/Reader/BitcodeAnalyzer.cpp?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/lib/Bitcode/Reader/BitcodeAnalyzer.cpp (original)
+++ llvm/trunk/lib/Bitcode/Reader/BitcodeAnalyzer.cpp Tue Jul 30 17:01:34 2019
@@ -434,13 +434,6 @@ static Expected<CurStreamTypeType> ReadS
       return std::move(Err);
     if (Signature[2] == 'A' && Signature[3] == 'G')
       return ClangSerializedDiagnosticsBitstream;
-  } else if (Signature[0] == 'R' && Signature[1] == 'M') {
-    if (Error Err = tryRead(Signature[2], 8))
-      return std::move(Err);
-    if (Error Err = tryRead(Signature[3], 8))
-      return std::move(Err);
-    if (Signature[2] == 'R' && Signature[3] == 'K')
-      return LLVMBitstreamRemarks;
   } else {
     if (Error Err = tryRead(Signature[2], 4))
       return std::move(Err);
@@ -634,9 +627,6 @@ void BitcodeAnalyzer::printStats(BCDumpO
   case ClangSerializedDiagnosticsBitstream:
     O.OS << "Clang Serialized Diagnostics\n";
     break;
-  case LLVMBitstreamRemarks:
-    O.OS << "LLVM Remarks\n";
-    break;
   }
   O.OS << "  # Toplevel Blocks: " << NumTopBlocks << "\n";
   O.OS << "\n";

Modified: llvm/trunk/lib/IR/RemarkStreamer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/RemarkStreamer.cpp?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/lib/IR/RemarkStreamer.cpp (original)
+++ llvm/trunk/lib/IR/RemarkStreamer.cpp Tue Jul 30 17:01:34 2019
@@ -15,7 +15,6 @@
 #include "llvm/IR/DiagnosticInfo.h"
 #include "llvm/IR/Function.h"
 #include "llvm/IR/GlobalValue.h"
-#include "llvm/Remarks/BitstreamRemarkSerializer.h"
 #include "llvm/Remarks/RemarkFormat.h"
 #include "llvm/Remarks/RemarkSerializer.h"
 

Removed: llvm/trunk/lib/Remarks/BitstreamRemarkSerializer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Remarks/BitstreamRemarkSerializer.cpp?rev=367369&view=auto
==============================================================================
--- llvm/trunk/lib/Remarks/BitstreamRemarkSerializer.cpp (original)
+++ llvm/trunk/lib/Remarks/BitstreamRemarkSerializer.cpp (removed)
@@ -1,383 +0,0 @@
-//===- BitstreamRemarkSerializer.cpp --------------------------------------===//
-//
-// 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 provides the implementation of the LLVM bitstream remark serializer
-// using LLVM's bitstream writer.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Remarks/BitstreamRemarkSerializer.h"
-
-using namespace llvm;
-using namespace llvm::remarks;
-
-BitstreamSerializerHelper::BitstreamSerializerHelper(
-    BitstreamRemarkContainerType ContainerType)
-    : Encoded(), R(), Bitstream(Encoded), ContainerType(ContainerType) {}
-
-static void push(SmallVectorImpl<uint64_t> &R, StringRef Str) {
-  for (const char C : Str)
-    R.push_back(C);
-}
-
-static void setRecordName(unsigned RecordID, BitstreamWriter &Bitstream,
-                          SmallVectorImpl<uint64_t> &R, StringRef Str) {
-  R.clear();
-  R.push_back(RecordID);
-  push(R, Str);
-  Bitstream.EmitRecord(bitc::BLOCKINFO_CODE_SETRECORDNAME, R);
-}
-
-static void initBlock(unsigned BlockID, BitstreamWriter &Bitstream,
-                      SmallVectorImpl<uint64_t> &R, StringRef Str) {
-  R.clear();
-  R.push_back(BlockID);
-  Bitstream.EmitRecord(bitc::BLOCKINFO_CODE_SETBID, R);
-
-  R.clear();
-  push(R, Str);
-  Bitstream.EmitRecord(bitc::BLOCKINFO_CODE_BLOCKNAME, R);
-}
-
-void BitstreamSerializerHelper::setupMetaBlockInfo() {
-  // Setup the metadata block.
-  initBlock(META_BLOCK_ID, Bitstream, R, MetaBlockName);
-
-  // The container information.
-  setRecordName(RECORD_META_CONTAINER_INFO, Bitstream, R,
-                MetaContainerInfoName);
-
-  auto Abbrev = std::make_shared<BitCodeAbbrev>();
-  Abbrev->Add(BitCodeAbbrevOp(RECORD_META_CONTAINER_INFO));
-  Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // Version.
-  Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 2));  // Type.
-  RecordMetaContainerInfoAbbrevID =
-      Bitstream.EmitBlockInfoAbbrev(META_BLOCK_ID, Abbrev);
-}
-
-void BitstreamSerializerHelper::setupMetaRemarkVersion() {
-  setRecordName(RECORD_META_REMARK_VERSION, Bitstream, R,
-                MetaRemarkVersionName);
-
-  auto Abbrev = std::make_shared<BitCodeAbbrev>();
-  Abbrev->Add(BitCodeAbbrevOp(RECORD_META_REMARK_VERSION));
-  Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // Version.
-  RecordMetaRemarkVersionAbbrevID =
-      Bitstream.EmitBlockInfoAbbrev(META_BLOCK_ID, Abbrev);
-}
-
-void BitstreamSerializerHelper::emitMetaRemarkVersion(uint64_t RemarkVersion) {
-  // The remark version is emitted only if we emit remarks.
-  R.clear();
-  R.push_back(RECORD_META_REMARK_VERSION);
-  R.push_back(RemarkVersion);
-  Bitstream.EmitRecordWithAbbrev(RecordMetaRemarkVersionAbbrevID, R);
-}
-
-void BitstreamSerializerHelper::setupMetaStrTab() {
-  setRecordName(RECORD_META_STRTAB, Bitstream, R, MetaStrTabName);
-
-  auto Abbrev = std::make_shared<BitCodeAbbrev>();
-  Abbrev->Add(BitCodeAbbrevOp(RECORD_META_STRTAB));
-  Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); // Raw table.
-  RecordMetaStrTabAbbrevID =
-      Bitstream.EmitBlockInfoAbbrev(META_BLOCK_ID, Abbrev);
-}
-
-void BitstreamSerializerHelper::emitMetaStrTab(const StringTable &StrTab) {
-  // The string table is not emitted if we emit remarks separately.
-  R.clear();
-  R.push_back(RECORD_META_STRTAB);
-
-  // Serialize to a blob.
-  std::string Buf;
-  raw_string_ostream OS(Buf);
-  StrTab.serialize(OS);
-  StringRef Blob = OS.str();
-  Bitstream.EmitRecordWithBlob(RecordMetaStrTabAbbrevID, R, Blob);
-}
-
-void BitstreamSerializerHelper::setupMetaExternalFile() {
-  setRecordName(RECORD_META_EXTERNAL_FILE, Bitstream, R, MetaExternalFileName);
-
-  auto Abbrev = std::make_shared<BitCodeAbbrev>();
-  Abbrev->Add(BitCodeAbbrevOp(RECORD_META_EXTERNAL_FILE));
-  Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Blob)); // Filename.
-  RecordMetaExternalFileAbbrevID =
-      Bitstream.EmitBlockInfoAbbrev(META_BLOCK_ID, Abbrev);
-}
-
-void BitstreamSerializerHelper::emitMetaExternalFile(StringRef Filename) {
-  // The external file is emitted only if we emit the separate metadata.
-  R.clear();
-  R.push_back(RECORD_META_EXTERNAL_FILE);
-  Bitstream.EmitRecordWithBlob(RecordMetaExternalFileAbbrevID, R, Filename);
-}
-
-void BitstreamSerializerHelper::setupRemarkBlockInfo() {
-  // Setup the remark block.
-  initBlock(REMARK_BLOCK_ID, Bitstream, R, RemarkBlockName);
-
-  // The header of a remark.
-  {
-    setRecordName(RECORD_REMARK_HEADER, Bitstream, R, RemarkHeaderName);
-
-    auto Abbrev = std::make_shared<BitCodeAbbrev>();
-    Abbrev->Add(BitCodeAbbrevOp(RECORD_REMARK_HEADER));
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 3)); // Type
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   // Remark Name
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 6));   // Pass name
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8));   // Function name
-    RecordRemarkHeaderAbbrevID =
-        Bitstream.EmitBlockInfoAbbrev(REMARK_BLOCK_ID, Abbrev);
-  }
-
-  // The location of a remark.
-  {
-    setRecordName(RECORD_REMARK_DEBUG_LOC, Bitstream, R, RemarkDebugLocName);
-
-    auto Abbrev = std::make_shared<BitCodeAbbrev>();
-    Abbrev->Add(BitCodeAbbrevOp(RECORD_REMARK_DEBUG_LOC));
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 7));    // File
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // Line
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // Column
-    RecordRemarkDebugLocAbbrevID =
-        Bitstream.EmitBlockInfoAbbrev(REMARK_BLOCK_ID, Abbrev);
-  }
-
-  // The hotness of a remark.
-  {
-    setRecordName(RECORD_REMARK_HOTNESS, Bitstream, R, RemarkHotnessName);
-
-    auto Abbrev = std::make_shared<BitCodeAbbrev>();
-    Abbrev->Add(BitCodeAbbrevOp(RECORD_REMARK_HOTNESS));
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 8)); // Hotness
-    RecordRemarkHotnessAbbrevID =
-        Bitstream.EmitBlockInfoAbbrev(REMARK_BLOCK_ID, Abbrev);
-  }
-
-  // An argument entry with a debug location attached.
-  {
-    setRecordName(RECORD_REMARK_ARG_WITH_DEBUGLOC, Bitstream, R,
-                  RemarkArgWithDebugLocName);
-
-    auto Abbrev = std::make_shared<BitCodeAbbrev>();
-    Abbrev->Add(BitCodeAbbrevOp(RECORD_REMARK_ARG_WITH_DEBUGLOC));
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 7));    // Key
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 7));    // Value
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 7));    // File
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // Line
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::Fixed, 32)); // Column
-    RecordRemarkArgWithDebugLocAbbrevID =
-        Bitstream.EmitBlockInfoAbbrev(REMARK_BLOCK_ID, Abbrev);
-  }
-
-  // An argument entry with no debug location attached.
-  {
-    setRecordName(RECORD_REMARK_ARG_WITHOUT_DEBUGLOC, Bitstream, R,
-                  RemarkArgWithoutDebugLocName);
-
-    auto Abbrev = std::make_shared<BitCodeAbbrev>();
-    Abbrev->Add(BitCodeAbbrevOp(RECORD_REMARK_ARG_WITHOUT_DEBUGLOC));
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 7)); // Key
-    Abbrev->Add(BitCodeAbbrevOp(BitCodeAbbrevOp::VBR, 7)); // Value
-    RecordRemarkArgWithoutDebugLocAbbrevID =
-        Bitstream.EmitBlockInfoAbbrev(REMARK_BLOCK_ID, Abbrev);
-  }
-}
-
-void BitstreamSerializerHelper::setupBlockInfo() {
-  // Emit magic number.
-  for (const char C : ContainerMagic)
-    Bitstream.Emit(static_cast<unsigned>(C), 8);
-
-  Bitstream.EnterBlockInfoBlock();
-
-  // Setup the main metadata. Depending on the container type, we'll setup the
-  // required records next.
-  setupMetaBlockInfo();
-
-  switch (ContainerType) {
-  case BitstreamRemarkContainerType::SeparateRemarksMeta:
-    // Needs a string table that the separate remark file is using.
-    setupMetaStrTab();
-    // Needs to know where the external remarks file is.
-    setupMetaExternalFile();
-    break;
-  case BitstreamRemarkContainerType::SeparateRemarksFile:
-    // Contains remarks: emit the version.
-    setupMetaRemarkVersion();
-    // Contains remarks: emit the remark abbrevs.
-    setupRemarkBlockInfo();
-    break;
-  case BitstreamRemarkContainerType::Standalone:
-    // Contains remarks: emit the version.
-    setupMetaRemarkVersion();
-    // Needs a string table.
-    setupMetaStrTab();
-    // Contains remarks: emit the remark abbrevs.
-    setupRemarkBlockInfo();
-    break;
-  }
-
-  Bitstream.ExitBlock();
-}
-
-void BitstreamSerializerHelper::emitMetaBlock(
-    uint64_t ContainerVersion, Optional<uint64_t> RemarkVersion,
-    Optional<const StringTable *> StrTab, Optional<StringRef> Filename) {
-  // Emit the meta block
-  Bitstream.EnterSubblock(META_BLOCK_ID, 3);
-
-  // The container version and type.
-  R.clear();
-  R.push_back(RECORD_META_CONTAINER_INFO);
-  R.push_back(ContainerVersion);
-  R.push_back(static_cast<uint64_t>(ContainerType));
-  Bitstream.EmitRecordWithAbbrev(RecordMetaContainerInfoAbbrevID, R);
-
-  switch (ContainerType) {
-  case BitstreamRemarkContainerType::SeparateRemarksMeta:
-    assert(StrTab != None && *StrTab != nullptr);
-    emitMetaStrTab(**StrTab);
-    assert(Filename != None);
-    emitMetaExternalFile(*Filename);
-    break;
-  case BitstreamRemarkContainerType::SeparateRemarksFile:
-    assert(RemarkVersion != None);
-    emitMetaRemarkVersion(*RemarkVersion);
-    break;
-  case BitstreamRemarkContainerType::Standalone:
-    assert(RemarkVersion != None);
-    emitMetaRemarkVersion(*RemarkVersion);
-    assert(StrTab != None && *StrTab != nullptr);
-    emitMetaStrTab(**StrTab);
-    break;
-  }
-
-  Bitstream.ExitBlock();
-}
-
-void BitstreamSerializerHelper::emitRemarkBlock(const Remark &Remark,
-                                                StringTable &StrTab) {
-  Bitstream.EnterSubblock(REMARK_BLOCK_ID, 4);
-
-  R.clear();
-  R.push_back(RECORD_REMARK_HEADER);
-  R.push_back(static_cast<uint64_t>(Remark.RemarkType));
-  R.push_back(StrTab.add(Remark.RemarkName).first);
-  R.push_back(StrTab.add(Remark.PassName).first);
-  R.push_back(StrTab.add(Remark.FunctionName).first);
-  Bitstream.EmitRecordWithAbbrev(RecordRemarkHeaderAbbrevID, R);
-
-  if (const Optional<RemarkLocation> &Loc = Remark.Loc) {
-    R.clear();
-    R.push_back(RECORD_REMARK_DEBUG_LOC);
-    R.push_back(StrTab.add(Loc->SourceFilePath).first);
-    R.push_back(Loc->SourceLine);
-    R.push_back(Loc->SourceColumn);
-    Bitstream.EmitRecordWithAbbrev(RecordRemarkDebugLocAbbrevID, R);
-  }
-
-  if (Optional<uint64_t> Hotness = Remark.Hotness) {
-    R.clear();
-    R.push_back(RECORD_REMARK_HOTNESS);
-    R.push_back(*Hotness);
-    Bitstream.EmitRecordWithAbbrev(RecordRemarkHotnessAbbrevID, R);
-  }
-
-  for (const Argument &Arg : Remark.Args) {
-    R.clear();
-    unsigned Key = StrTab.add(Arg.Key).first;
-    unsigned Val = StrTab.add(Arg.Val).first;
-    bool HasDebugLoc = Arg.Loc != None;
-    R.push_back(HasDebugLoc ? RECORD_REMARK_ARG_WITH_DEBUGLOC
-                            : RECORD_REMARK_ARG_WITHOUT_DEBUGLOC);
-    R.push_back(Key);
-    R.push_back(Val);
-    if (HasDebugLoc) {
-      R.push_back(StrTab.add(Arg.Loc->SourceFilePath).first);
-      R.push_back(Arg.Loc->SourceLine);
-      R.push_back(Arg.Loc->SourceColumn);
-    }
-    Bitstream.EmitRecordWithAbbrev(HasDebugLoc
-                                       ? RecordRemarkArgWithDebugLocAbbrevID
-                                       : RecordRemarkArgWithoutDebugLocAbbrevID,
-                                   R);
-  }
-  Bitstream.ExitBlock();
-}
-
-void BitstreamSerializerHelper::flushToStream(raw_ostream &OS) {
-  OS.write(Encoded.data(), Encoded.size());
-  Encoded.clear();
-}
-
-StringRef BitstreamSerializerHelper::getBuffer() {
-  return StringRef(Encoded.data(), Encoded.size());
-}
-
-BitstreamSerializer::BitstreamSerializer(raw_ostream &OS, SerializerMode Mode)
-    : RemarkSerializer(OS, Mode),
-      Helper(BitstreamRemarkContainerType::SeparateRemarksFile) {
-  assert(Mode == SerializerMode::Separate &&
-         "For SerializerMode::Standalone, a pre-filled string table needs to "
-         "be provided.");
-  // We always use a string table with bitstream.
-  StrTab.emplace();
-}
-
-BitstreamSerializer::BitstreamSerializer(raw_ostream &OS, SerializerMode Mode,
-                                         StringTable StrTabIn)
-    : RemarkSerializer(OS, Mode),
-      Helper(Mode == SerializerMode::Separate
-                 ? BitstreamRemarkContainerType::SeparateRemarksFile
-                 : BitstreamRemarkContainerType::Standalone) {
-  StrTab = std::move(StrTabIn);
-}
-
-void BitstreamSerializer::emit(const Remark &Remark) {
-  if (!DidSetUp) {
-    // Emit the metadata that is embedded in the remark file.
-    // If we're in standalone mode, serialize the string table as well.
-    bool IsStandalone =
-        Helper.ContainerType == BitstreamRemarkContainerType::Standalone;
-    BitstreamMetaSerializer MetaSerializer(
-        OS, Helper,
-        IsStandalone ? &*StrTab : Optional<const StringTable *>(None));
-    MetaSerializer.emit();
-    DidSetUp = true;
-  }
-
-  assert(DidSetUp &&
-         "The Block info block and the meta block were not emitted yet.");
-  Helper.emitRemarkBlock(Remark, *StrTab);
-
-  Helper.flushToStream(OS);
-}
-
-std::unique_ptr<MetaSerializer>
-BitstreamSerializer::metaSerializer(raw_ostream &OS,
-                                    Optional<StringRef> ExternalFilename) {
-  assert(Helper.ContainerType !=
-         BitstreamRemarkContainerType::SeparateRemarksMeta);
-  bool IsStandalone =
-      Helper.ContainerType == BitstreamRemarkContainerType::Standalone;
-  return llvm::make_unique<BitstreamMetaSerializer>(
-      OS,
-      IsStandalone ? BitstreamRemarkContainerType::Standalone
-                   : BitstreamRemarkContainerType::SeparateRemarksMeta,
-      &*StrTab, ExternalFilename);
-}
-
-void BitstreamMetaSerializer::emit() {
-  Helper->setupBlockInfo();
-  Helper->emitMetaBlock(CurrentContainerVersion, CurrentRemarkVersion, StrTab,
-                       ExternalFilename);
-  Helper->flushToStream(OS);
-}

Modified: llvm/trunk/lib/Remarks/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Remarks/CMakeLists.txt?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/lib/Remarks/CMakeLists.txt (original)
+++ llvm/trunk/lib/Remarks/CMakeLists.txt Tue Jul 30 17:01:34 2019
@@ -1,5 +1,4 @@
 add_llvm_library(LLVMRemarks
-  BitstreamRemarkSerializer.cpp
   Remark.cpp
   RemarkFormat.cpp
   RemarkParser.cpp

Modified: llvm/trunk/lib/Remarks/RemarkFormat.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Remarks/RemarkFormat.cpp?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/lib/Remarks/RemarkFormat.cpp (original)
+++ llvm/trunk/lib/Remarks/RemarkFormat.cpp Tue Jul 30 17:01:34 2019
@@ -19,8 +19,7 @@ using namespace llvm::remarks;
 Expected<Format> llvm::remarks::parseFormat(StringRef FormatStr) {
   auto Result = StringSwitch<Format>(FormatStr)
                     .Cases("", "yaml", Format::YAML)
-                    .Case("yaml-strtab", Format::YAMLStrTab)
-                    .Case("bitstream", Format::Bitstream)
+                    .Cases("", "yaml-strtab", Format::YAMLStrTab)
                     .Default(Format::Unknown);
 
   if (Result == Format::Unknown)

Modified: llvm/trunk/lib/Remarks/RemarkParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Remarks/RemarkParser.cpp?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/lib/Remarks/RemarkParser.cpp (original)
+++ llvm/trunk/lib/Remarks/RemarkParser.cpp Tue Jul 30 17:01:34 2019
@@ -56,9 +56,6 @@ llvm::remarks::createRemarkParser(Format
     return createStringError(
         std::make_error_code(std::errc::invalid_argument),
         "The YAML with string table format requires a parsed string table.");
-  case Format::Bitstream:
-    return createStringError(std::make_error_code(std::errc::invalid_argument),
-                             "Parsing bitstream remarks is not supported.");
   case Format::Unknown:
     return createStringError(std::make_error_code(std::errc::invalid_argument),
                              "Unknown remark parser format.");
@@ -76,9 +73,6 @@ llvm::remarks::createRemarkParser(Format
                              "table. Use yaml-strtab instead.");
   case Format::YAMLStrTab:
     return llvm::make_unique<YAMLStrTabRemarkParser>(Buf, std::move(StrTab));
-  case Format::Bitstream:
-    return createStringError(std::make_error_code(std::errc::invalid_argument),
-                             "Parsing bitstream remarks is not supported.");
   case Format::Unknown:
     return createStringError(std::make_error_code(std::errc::invalid_argument),
                              "Unknown remark parser format.");
@@ -95,9 +89,6 @@ llvm::remarks::createRemarkParserFromMet
   case Format::YAML:
   case Format::YAMLStrTab:
     return createYAMLParserFromMeta(Buf, std::move(StrTab));
-  case Format::Bitstream:
-    return createStringError(std::make_error_code(std::errc::invalid_argument),
-                             "Parsing bitstream remarks is not supported.");
   case Format::Unknown:
     return createStringError(std::make_error_code(std::errc::invalid_argument),
                              "Unknown remark parser format.");

Modified: llvm/trunk/lib/Remarks/RemarkSerializer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Remarks/RemarkSerializer.cpp?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/lib/Remarks/RemarkSerializer.cpp (original)
+++ llvm/trunk/lib/Remarks/RemarkSerializer.cpp Tue Jul 30 17:01:34 2019
@@ -11,7 +11,6 @@
 //===----------------------------------------------------------------------===//
 
 #include "llvm/Remarks/RemarkSerializer.h"
-#include "llvm/Remarks/BitstreamRemarkSerializer.h"
 #include "llvm/Remarks/YAMLRemarkSerializer.h"
 
 using namespace llvm;
@@ -28,8 +27,6 @@ remarks::createRemarkSerializer(Format R
     return llvm::make_unique<YAMLRemarkSerializer>(OS, Mode);
   case Format::YAMLStrTab:
     return llvm::make_unique<YAMLStrTabRemarkSerializer>(OS, Mode);
-  case Format::Bitstream:
-    return llvm::make_unique<BitstreamSerializer>(OS, Mode);
   }
   llvm_unreachable("Unknown remarks::Format enum");
 }
@@ -48,8 +45,6 @@ remarks::createRemarkSerializer(Format R
   case Format::YAMLStrTab:
     return llvm::make_unique<YAMLStrTabRemarkSerializer>(OS, Mode,
                                                          std::move(StrTab));
-  case Format::Bitstream:
-    return llvm::make_unique<BitstreamSerializer>(OS, Mode, std::move(StrTab));
   }
   llvm_unreachable("Unknown remarks::Format enum");
 }

Modified: llvm/trunk/lib/Remarks/YAMLRemarkParser.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Remarks/YAMLRemarkParser.cpp?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/lib/Remarks/YAMLRemarkParser.cpp (original)
+++ llvm/trunk/lib/Remarks/YAMLRemarkParser.cpp Tue Jul 30 17:01:34 2019
@@ -75,11 +75,11 @@ static Expected<uint64_t> parseVersion(S
   uint64_t Version =
       support::endian::read<uint64_t, support::little, support::unaligned>(
           Buf.data());
-  if (Version != remarks::CurrentRemarkVersion)
+  if (Version != remarks::Version)
     return createStringError(std::errc::illegal_byte_sequence,
                              "Mismatching remark version. Got %" PRId64
                              ", expected %" PRId64 ".",
-                             Version, remarks::CurrentRemarkVersion);
+                             Version, remarks::Version);
   Buf = Buf.drop_front(sizeof(uint64_t));
   return Version;
 }

Modified: llvm/trunk/lib/Remarks/YAMLRemarkSerializer.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Remarks/YAMLRemarkSerializer.cpp?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/lib/Remarks/YAMLRemarkSerializer.cpp (original)
+++ llvm/trunk/lib/Remarks/YAMLRemarkSerializer.cpp Tue Jul 30 17:01:34 2019
@@ -191,7 +191,7 @@ static void emitMagic(raw_ostream &OS) {
 static void emitVersion(raw_ostream &OS) {
   // Emit the version number: little-endian uint64_t.
   std::array<char, 8> Version;
-  support::endian::write64le(Version.data(), remarks::CurrentRemarkVersion);
+  support::endian::write64le(Version.data(), remarks::Version);
   OS.write(Version.data(), Version.size());
 }
 

Modified: llvm/trunk/test/Bitcode/stream-types.c
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/stream-types.c?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/test/Bitcode/stream-types.c (original)
+++ llvm/trunk/test/Bitcode/stream-types.c Tue Jul 30 17:01:34 2019
@@ -10,6 +10,3 @@
 // RUN: not llvm-bcanalyzer -dump %s.ast.incomplete 2>&1 | FileCheck %s -check-prefix=CHECK-INCOMPLETE
 // RUN: not llvm-bcanalyzer -dump %s.dia.incomplete 2>&1 | FileCheck %s -check-prefix=CHECK-INCOMPLETE
 // CHECK-INCOMPLETE: Bitcode stream should be a multiple of 4 bytes in length
-
-// RUN: llvm-bcanalyzer -dump %s.opt.bitstream | FileCheck %s -check-prefix=CHECK-REMARKS
-// CHECK-REMARKS: Stream type: LLVM Remarks

Removed: llvm/trunk/test/Bitcode/stream-types.c.opt.bitstream
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Bitcode/stream-types.c.opt.bitstream?rev=367369&view=auto
==============================================================================
Binary file - no diff available.

Removed: llvm/trunk/unittests/Remarks/BitstreamRemarksFormatTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Remarks/BitstreamRemarksFormatTest.cpp?rev=367369&view=auto
==============================================================================
--- llvm/trunk/unittests/Remarks/BitstreamRemarksFormatTest.cpp (original)
+++ llvm/trunk/unittests/Remarks/BitstreamRemarksFormatTest.cpp (removed)
@@ -1,48 +0,0 @@
-//===- unittest/Support/BitstreamRemarksFormatTest.cpp - BitCodes tests ---===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Remarks/BitstreamRemarkContainer.h"
-#include "gtest/gtest.h"
-
-using namespace llvm;
-
-// The goal for this test is to observe test failures and carefully update the
-// constants when they change.
-
-// This should not change over time.
-TEST(BitstreamRemarksFormat, Magic) {
-  EXPECT_EQ(remarks::ContainerMagic, "RMRK");
-}
-
-// This should be updated whenever any of the tests below are modified.
-TEST(BitstreamRemarksFormat, ContainerVersion) {
-  EXPECT_EQ(remarks::CurrentContainerVersion, 0UL);
-}
-
-// The values of the current blocks should not change over time.
-// When adding new blocks, make sure to append them to the enum.
-TEST(BitstreamRemarksFormat, BlockIDs) {
-  EXPECT_EQ(remarks::META_BLOCK_ID, 8);
-  EXPECT_EQ(remarks::REMARK_BLOCK_ID, 9);
-}
-
-// The values of the current records should not change over time.
-// When adding new records, make sure to append them to the enum.
-TEST(BitstreamRemarksFormat, RecordIDs) {
-  EXPECT_EQ(remarks::RECORD_FIRST, 1);
-  EXPECT_EQ(remarks::RECORD_META_CONTAINER_INFO, 1);
-  EXPECT_EQ(remarks::RECORD_META_REMARK_VERSION, 2);
-  EXPECT_EQ(remarks::RECORD_META_STRTAB, 3);
-  EXPECT_EQ(remarks::RECORD_META_EXTERNAL_FILE, 4);
-  EXPECT_EQ(remarks::RECORD_REMARK_HEADER, 5);
-  EXPECT_EQ(remarks::RECORD_REMARK_DEBUG_LOC, 6);
-  EXPECT_EQ(remarks::RECORD_REMARK_HOTNESS, 7);
-  EXPECT_EQ(remarks::RECORD_REMARK_ARG_WITH_DEBUGLOC, 8);
-  EXPECT_EQ(remarks::RECORD_REMARK_ARG_WITHOUT_DEBUGLOC, 9);
-  EXPECT_EQ(remarks::RECORD_LAST, 9);
-}

Removed: llvm/trunk/unittests/Remarks/BitstreamRemarksSerializerTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Remarks/BitstreamRemarksSerializerTest.cpp?rev=367369&view=auto
==============================================================================
--- llvm/trunk/unittests/Remarks/BitstreamRemarksSerializerTest.cpp (original)
+++ llvm/trunk/unittests/Remarks/BitstreamRemarksSerializerTest.cpp (removed)
@@ -1,341 +0,0 @@
-//===- unittest/Support/BitstreamRemarksSerializerTest.cpp ----------------===//
-//
-// 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
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/Bitcode/BitcodeAnalyzer.h"
-#include "llvm/Remarks/BitstreamRemarkSerializer.h"
-#include "llvm/Support/raw_ostream.h"
-#include "gtest/gtest.h"
-#include <string>
-
-// We need to supprt Windows paths as well. In order to have paths with the same
-// length, use a different path according to the platform.
-#ifdef _WIN32
-#define EXTERNALFILETESTPATH "C:/externalfi"
-#else
-#define EXTERNALFILETESTPATH "/externalfile"
-#endif
-
-using namespace llvm;
-
-static void checkAnalyze(StringRef Input, StringRef Expected) {
-  std::string OutputBuf;
-  raw_string_ostream OutputOS(OutputBuf);
-  BCDumpOptions O(OutputOS);
-  O.ShowBinaryBlobs = true;
-  BitcodeAnalyzer BA(Input);
-  EXPECT_FALSE(BA.analyze(O)); // Expect no errors.
-  EXPECT_EQ(OutputOS.str(), Expected);
-}
-
-static void check(remarks::SerializerMode Mode, const remarks::Remark &R,
-                  StringRef ExpectedR, Optional<StringRef> ExpectedMeta,
-                  Optional<remarks::StringTable> StrTab) {
-  // Emit the remark.
-  std::string InputBuf;
-  raw_string_ostream InputOS(InputBuf);
-  Expected<std::unique_ptr<remarks::RemarkSerializer>> MaybeSerializer = [&] {
-    if (StrTab)
-      return createRemarkSerializer(remarks::Format::Bitstream, Mode, InputOS,
-                                    std::move(*StrTab));
-    else
-      return createRemarkSerializer(remarks::Format::Bitstream, Mode, InputOS);
-  }();
-  EXPECT_FALSE(errorToBool(MaybeSerializer.takeError()));
-  std::unique_ptr<remarks::RemarkSerializer> Serializer =
-      std::move(*MaybeSerializer);
-  Serializer->emit(R);
-
-  // Analyze the serialized remark.
-  checkAnalyze(InputOS.str(), ExpectedR);
-
-  // Analyze the serialized metadata if it's not in standalone mode.
-  if (ExpectedMeta) {
-    std::string MetaBuf;
-    raw_string_ostream MetaOS(MetaBuf);
-    std::unique_ptr<remarks::MetaSerializer> MetaSerializer =
-        Serializer->metaSerializer(MetaOS, StringRef(EXTERNALFILETESTPATH));
-    MetaSerializer->emit();
-    checkAnalyze(MetaOS.str(), *ExpectedMeta);
-  }
-}
-
-static void check(const remarks::Remark &R, StringRef ExpectedR,
-                  StringRef ExpectedMeta,
-                  Optional<remarks::StringTable> StrTab = None) {
-  return check(remarks::SerializerMode::Separate, R, ExpectedR, ExpectedMeta,
-               std::move(StrTab));
-}
-
-static void checkStandalone(const remarks::Remark &R, StringRef ExpectedR,
-                            Optional<remarks::StringTable> StrTab = None) {
-  return check(remarks::SerializerMode::Standalone, R, ExpectedR,
-               /*ExpectedMeta=*/None, std::move(StrTab));
-}
-
-TEST(BitstreamRemarkSerializer, SeparateRemarkFileNoOptionals) {
-  remarks::Remark R;
-  R.RemarkType = remarks::Type::Missed;
-  R.PassName = "pass";
-  R.RemarkName = "remark";
-  R.FunctionName = "function";
-  check(R,
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=3 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=1/>\n"
-        "  <Remark version codeid=2 abbrevid=5 op0=0/>\n"
-        "</Meta>\n"
-        "<Remark BlockID=9 NumWords=1 BlockCodeSize=4>\n"
-        "  <Remark header codeid=5 abbrevid=4 op0=2 op1=0 op2=1 op3=2/>\n"
-        "</Remark>\n",
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=14 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=0/>\n"
-        "  <String table codeid=3 abbrevid=5/> blob data = "
-        "'remark\\x00pass\\x00function\\x00'\n"
-        "  <External File codeid=4 abbrevid=6/> blob data = "
-        "'" EXTERNALFILETESTPATH"'\n"
-        "</Meta>\n");
-}
-
-TEST(BitstreamRemarkSerializer, SeparateRemarkFileNoOptionalsSeparateStrTab) {
-  remarks::StringTable StrTab;
-  StrTab.add("function");
-  StrTab.add("pass");
-  StrTab.add("remark");
-  remarks::Remark R;
-  R.RemarkType = remarks::Type::Missed;
-  R.PassName = "pass";
-  R.RemarkName = "remark";
-  R.FunctionName = "function";
-  check(R,
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=3 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=1/>\n"
-        "  <Remark version codeid=2 abbrevid=5 op0=0/>\n"
-        "</Meta>\n"
-        "<Remark BlockID=9 NumWords=1 BlockCodeSize=4>\n"
-        "  <Remark header codeid=5 abbrevid=4 op0=2 op1=2 op2=1 op3=0/>\n"
-        "</Remark>\n",
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=14 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=0/>\n"
-        "  <String table codeid=3 abbrevid=5/> blob data = "
-        "'function\\x00pass\\x00remark\\x00'\n"
-        "  <External File codeid=4 abbrevid=6/> blob data = "
-        "'" EXTERNALFILETESTPATH"'\n"
-        "</Meta>\n",
-        std::move(StrTab));
-}
-
-TEST(BitstreamRemarkSerializer, SeparateRemarkFileDebugLoc) {
-  remarks::Remark R;
-  R.RemarkType = remarks::Type::Missed;
-  R.PassName = "pass";
-  R.RemarkName = "remark";
-  R.FunctionName = "function";
-  R.Loc.emplace();
-  R.Loc->SourceFilePath = "path";
-  R.Loc->SourceLine = 99;
-  R.Loc->SourceColumn = 55;
-  check(R,
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=3 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=1/>\n"
-        "  <Remark version codeid=2 abbrevid=5 op0=0/>\n"
-        "</Meta>\n"
-        "<Remark BlockID=9 NumWords=4 BlockCodeSize=4>\n"
-        "  <Remark header codeid=5 abbrevid=4 op0=2 op1=0 op2=1 op3=2/>\n"
-        "  <Remark debug location codeid=6 abbrevid=5 op0=3 op1=99 op2=55/>\n"
-        "</Remark>\n",
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=15 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=0/>\n"
-        "  <String table codeid=3 abbrevid=5/> blob data = "
-        "'remark\\x00pass\\x00function\\x00path\\x00'\n"
-        "  <External File codeid=4 abbrevid=6/> blob data = "
-        "'" EXTERNALFILETESTPATH"'\n"
-        "</Meta>\n");
-}
-
-TEST(BitstreamRemarkSerializer, SeparateRemarkFileHotness) {
-  remarks::Remark R;
-  R.RemarkType = remarks::Type::Missed;
-  R.PassName = "pass";
-  R.RemarkName = "remark";
-  R.FunctionName = "function";
-  R.Hotness.emplace(999999999);
-  check(R,
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=3 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=1/>\n"
-        "  <Remark version codeid=2 abbrevid=5 op0=0/>\n"
-        "</Meta>\n"
-        "<Remark BlockID=9 NumWords=3 BlockCodeSize=4>\n"
-        "  <Remark header codeid=5 abbrevid=4 op0=2 op1=0 op2=1 op3=2/>\n"
-        "  <Remark hotness codeid=7 abbrevid=6 op0=999999999/>\n"
-        "</Remark>\n",
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=14 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=0/>\n"
-        "  <String table codeid=3 abbrevid=5/> blob data = "
-        "'remark\\x00pass\\x00function\\x00'\n"
-        "  <External File codeid=4 abbrevid=6/> blob data = "
-        "'" EXTERNALFILETESTPATH"'\n"
-        "</Meta>\n");
-}
-
-TEST(BitstreamRemarkSerializer, SeparateRemarkFileArgNoDebugLoc) {
-  remarks::Remark R;
-  R.RemarkType = remarks::Type::Missed;
-  R.PassName = "pass";
-  R.RemarkName = "remark";
-  R.FunctionName = "function";
-  R.Args.emplace_back();
-  R.Args.back().Key = "key";
-  R.Args.back().Val = "value";
-  check(R,
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=3 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=1/>\n"
-        "  <Remark version codeid=2 abbrevid=5 op0=0/>\n"
-        "</Meta>\n"
-        "<Remark BlockID=9 NumWords=2 BlockCodeSize=4>\n"
-        "  <Remark header codeid=5 abbrevid=4 op0=2 op1=0 op2=1 op3=2/>\n"
-        "  <Argument codeid=9 abbrevid=8 op0=3 op1=4/>\n"
-        "</Remark>\n",
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=16 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=0/>\n"
-        "  <String table codeid=3 abbrevid=5/> blob data = "
-        "'remark\\x00pass\\x00function\\x00key\\x00value\\x00'\n"
-        "  <External File codeid=4 abbrevid=6/> blob data = "
-        "'" EXTERNALFILETESTPATH"'\n"
-        "</Meta>\n");
-}
-
-TEST(BitstreamRemarkSerializer, SeparateRemarkFileArgDebugLoc) {
-  remarks::Remark R;
-  R.RemarkType = remarks::Type::Missed;
-  R.PassName = "pass";
-  R.RemarkName = "remark";
-  R.FunctionName = "function";
-  R.Args.emplace_back();
-  R.Args.back().Key = "key";
-  R.Args.back().Val = "value";
-  R.Args.back().Loc.emplace();
-  R.Args.back().Loc->SourceFilePath = "path";
-  R.Args.back().Loc->SourceLine = 99;
-  R.Args.back().Loc->SourceColumn = 55;
-  check(R,
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=3 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=1/>\n"
-        "  <Remark version codeid=2 abbrevid=5 op0=0/>\n"
-        "</Meta>\n"
-        "<Remark BlockID=9 NumWords=4 BlockCodeSize=4>\n"
-        "  <Remark header codeid=5 abbrevid=4 op0=2 op1=0 op2=1 op3=2/>\n"
-        "  <Argument with debug location codeid=8 abbrevid=7 op0=3 op1=4 op2=5 "
-        "op3=99 op4=55/>\n"
-        "</Remark>\n",
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=17 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=0/>\n"
-        "  <String table codeid=3 abbrevid=5/> blob data = "
-        "'remark\\x00pass\\x00function\\x00key\\x00value\\x00path\\x00'\n"
-        "  <External File codeid=4 abbrevid=6/> blob data = "
-        "'" EXTERNALFILETESTPATH"'\n"
-        "</Meta>\n");
-}
-
-TEST(BitstreamRemarkSerializer, SeparateRemarkFileAll) {
-  remarks::Remark R;
-  R.RemarkType = remarks::Type::Missed;
-  R.PassName = "pass";
-  R.RemarkName = "remark";
-  R.FunctionName = "function";
-  R.Loc.emplace();
-  R.Loc->SourceFilePath = "path";
-  R.Loc->SourceLine = 99;
-  R.Loc->SourceColumn = 55;
-  R.Hotness.emplace(999999999);
-  R.Args.emplace_back();
-  R.Args.back().Key = "key";
-  R.Args.back().Val = "value";
-  R.Args.back().Loc.emplace();
-  R.Args.back().Loc->SourceFilePath = "argpath";
-  R.Args.back().Loc->SourceLine = 11;
-  R.Args.back().Loc->SourceColumn = 66;
-  check(R,
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=3 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=1/>\n"
-        "  <Remark version codeid=2 abbrevid=5 op0=0/>\n"
-        "</Meta>\n"
-        "<Remark BlockID=9 NumWords=8 BlockCodeSize=4>\n"
-        "  <Remark header codeid=5 abbrevid=4 op0=2 op1=0 op2=1 op3=2/>\n"
-        "  <Remark debug location codeid=6 abbrevid=5 op0=3 op1=99 op2=55/>\n"
-        "  <Remark hotness codeid=7 abbrevid=6 op0=999999999/>\n"
-        "  <Argument with debug location codeid=8 abbrevid=7 op0=4 op1=5 op2=6 "
-        "op3=11 op4=66/>\n"
-        "</Remark>\n",
-        "<BLOCKINFO_BLOCK/>\n"
-        "<Meta BlockID=8 NumWords=19 BlockCodeSize=3>\n"
-        "  <Container info codeid=1 abbrevid=4 op0=0 op1=0/>\n"
-        "  <String table codeid=3 abbrevid=5/> blob data = "
-        "'remark\\x00pass\\x00function\\x00path\\x00key\\x00value\\x00argpa"
-        "th\\x00'\n  <External File codeid=4 abbrevid=6/> blob data = "
-        "'" EXTERNALFILETESTPATH"'\n"
-        "</Meta>\n");
-}
-
-TEST(BitstreamRemarkSerializer, Standalone) {
-  // Pre-populate the string table.
-  remarks::StringTable StrTab;
-  StrTab.add("pass");
-  StrTab.add("remark");
-  StrTab.add("function");
-  StrTab.add("path");
-  StrTab.add("key");
-  StrTab.add("value");
-  StrTab.add("argpath");
-  remarks::Remark R;
-  R.RemarkType = remarks::Type::Missed;
-  R.PassName = "pass";
-  R.RemarkName = "remark";
-  R.FunctionName = "function";
-  R.Loc.emplace();
-  R.Loc->SourceFilePath = "path";
-  R.Loc->SourceLine = 99;
-  R.Loc->SourceColumn = 55;
-  R.Hotness.emplace(999999999);
-  R.Args.emplace_back();
-  R.Args.back().Key = "key";
-  R.Args.back().Val = "value";
-  R.Args.back().Loc.emplace();
-  R.Args.back().Loc->SourceFilePath = "argpath";
-  R.Args.back().Loc->SourceLine = 11;
-  R.Args.back().Loc->SourceColumn = 66;
-  checkStandalone(
-      R,
-      "<BLOCKINFO_BLOCK/>\n"
-      "<Meta BlockID=8 NumWords=15 BlockCodeSize=3>\n"
-      "  <Container info codeid=1 abbrevid=4 op0=0 op1=2/>\n"
-      "  <Remark version codeid=2 abbrevid=5 op0=0/>\n"
-      "  <String table codeid=3 abbrevid=6/> blob data = "
-      "'pass\\x00remark\\x00function\\x00path\\x00key\\x00value\\x00argpath\\x0"
-      "0'\n"
-      "</Meta>\n"
-      "<Remark BlockID=9 NumWords=8 BlockCodeSize=4>\n"
-      "  <Remark header codeid=5 abbrevid=4 op0=2 op1=1 op2=0 op3=2/>\n"
-      "  <Remark debug location codeid=6 abbrevid=5 op0=3 op1=99 op2=55/>\n"
-      "  <Remark hotness codeid=7 abbrevid=6 op0=999999999/>\n"
-      "  <Argument with debug location codeid=8 abbrevid=7 op0=4 op1=5 op2=6 "
-      "op3=11 op4=66/>\n"
-      "</Remark>\n",
-      std::move(StrTab));
-}

Modified: llvm/trunk/unittests/Remarks/CMakeLists.txt
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Remarks/CMakeLists.txt?rev=367370&r1=367369&r2=367370&view=diff
==============================================================================
--- llvm/trunk/unittests/Remarks/CMakeLists.txt (original)
+++ llvm/trunk/unittests/Remarks/CMakeLists.txt Tue Jul 30 17:01:34 2019
@@ -1,12 +1,9 @@
 set(LLVM_LINK_COMPONENTS
-  BitReader
   Remarks
   Support
   )
 
 add_llvm_unittest(RemarksTests
-  BitstreamRemarksFormatTest.cpp
-  BitstreamRemarksSerializerTest.cpp
   RemarksStrTabParsingTest.cpp
   YAMLRemarksParsingTest.cpp
   YAMLRemarksSerializerTest.cpp




More information about the llvm-commits mailing list