diff options
| author | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2019-07-31 00:01:34 +0000 |
|---|---|---|
| committer | Francis Visoiu Mistrih <francisvm@yahoo.com> | 2019-07-31 00:01:34 +0000 |
| commit | d8e7967a22b600e059fef140083950bc514a4c43 (patch) | |
| tree | 7a7f6e52b19eb85b8edeb4485039824582559c1d /llvm/unittests | |
| parent | 9cf980d4a7ac7bda6f05807dd1e0456b8b2906ff (diff) | |
| download | bcm5719-llvm-d8e7967a22b600e059fef140083950bc514a4c43.tar.gz bcm5719-llvm-d8e7967a22b600e059fef140083950bc514a4c43.zip | |
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
llvm-svn: 367370
Diffstat (limited to 'llvm/unittests')
| -rw-r--r-- | llvm/unittests/Remarks/BitstreamRemarksFormatTest.cpp | 48 | ||||
| -rw-r--r-- | llvm/unittests/Remarks/BitstreamRemarksSerializerTest.cpp | 341 | ||||
| -rw-r--r-- | llvm/unittests/Remarks/CMakeLists.txt | 3 |
3 files changed, 0 insertions, 392 deletions
diff --git a/llvm/unittests/Remarks/BitstreamRemarksFormatTest.cpp b/llvm/unittests/Remarks/BitstreamRemarksFormatTest.cpp deleted file mode 100644 index ea61691f4c8..00000000000 --- a/llvm/unittests/Remarks/BitstreamRemarksFormatTest.cpp +++ /dev/null @@ -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); -} diff --git a/llvm/unittests/Remarks/BitstreamRemarksSerializerTest.cpp b/llvm/unittests/Remarks/BitstreamRemarksSerializerTest.cpp deleted file mode 100644 index 4c6bf7f3292..00000000000 --- a/llvm/unittests/Remarks/BitstreamRemarksSerializerTest.cpp +++ /dev/null @@ -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)); -} diff --git a/llvm/unittests/Remarks/CMakeLists.txt b/llvm/unittests/Remarks/CMakeLists.txt index 5731650c40b..91d9702f93d 100644 --- a/llvm/unittests/Remarks/CMakeLists.txt +++ b/llvm/unittests/Remarks/CMakeLists.txt @@ -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 |

