From 0428e93217a55384f08c754ca8353a55334f3ef8 Mon Sep 17 00:00:00 2001 From: Adam Nemet Date: Tue, 4 Oct 2016 17:05:04 +0000 Subject: [PATCH] Serialize remark argument as a mapping to get proper quotation for the value. llvm-svn: 283231 --- llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp | 16 +++++----------- .../Inline/optimization-remarks-passed-yaml.ll | 14 +++++++------- llvm/test/Transforms/Inline/optimization-remarks-yaml.ll | 8 ++++---- 3 files changed, 16 insertions(+), 22 deletions(-) diff --git a/llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp b/llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp index bfb1976..d4359a8 100644 --- a/llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp +++ b/llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp @@ -110,18 +110,12 @@ template <> struct MappingTraits { static const bool flow = true; }; -template <> struct ScalarTraits { - static void output(const DiagnosticInfoOptimizationBase::Argument &Arg, - void *, llvm::raw_ostream &out) { - out << Arg.Key << ": " << Arg.Val; - } - - static StringRef input(StringRef scalar, void *, - DiagnosticInfoOptimizationBase::Argument &Arg) { - llvm_unreachable("input not yet implemented"); +// Implement this as a mapping for now to get proper quotation for the value. +template <> struct MappingTraits { + static void mapping(IO &io, DiagnosticInfoOptimizationBase::Argument &A) { + assert(io.outputting() && "input not yet implemented"); + io.mapRequired(A.Key.data(), A.Val); } - - static bool mustQuote(StringRef) { return false; } }; } // end namespace yaml diff --git a/llvm/test/Transforms/Inline/optimization-remarks-passed-yaml.ll b/llvm/test/Transforms/Inline/optimization-remarks-passed-yaml.ll index dff7343..60d0758 100644 --- a/llvm/test/Transforms/Inline/optimization-remarks-passed-yaml.ll +++ b/llvm/test/Transforms/Inline/optimization-remarks-passed-yaml.ll @@ -23,13 +23,13 @@ ; YAML-NEXT: Hotness: 30 ; YAML-NEXT: Args: ; YAML-NEXT: - Callee: foo -; YAML-NEXT: - String: can be inlined into +; YAML-NEXT: - String: ' can be inlined into ' ; YAML-NEXT: - Caller: bar -; YAML-NEXT: - String: with cost= -; YAML-NEXT: - Cost: {{[0-9]+}} -; YAML-NEXT: - String: (threshold= -; YAML-NEXT: - Threshold: {{[0-9]+}} -; YAML-NEXT: - String: ) +; YAML-NEXT: - String: ' with cost=' +; YAML-NEXT: - Cost: '{{[0-9]+}}' +; YAML-NEXT: - String: ' (threshold=' +; YAML-NEXT: - Threshold: '{{[0-9]+}}' +; YAML-NEXT: - String: ')' ; YAML-NEXT: ... ; YAML-NEXT: --- !Passed ; YAML-NEXT: Pass: inline @@ -39,7 +39,7 @@ ; YAML-NEXT: Hotness: 30 ; YAML-NEXT: Args: ; YAML-NEXT: - Callee: foo -; YAML-NEXT: - String: inlined into +; YAML-NEXT: - String: ' inlined into ' ; YAML-NEXT: - Caller: bar ; YAML-NEXT: ... diff --git a/llvm/test/Transforms/Inline/optimization-remarks-yaml.ll b/llvm/test/Transforms/Inline/optimization-remarks-yaml.ll index 1ba2e0a..b3ee9fa 100644 --- a/llvm/test/Transforms/Inline/optimization-remarks-yaml.ll +++ b/llvm/test/Transforms/Inline/optimization-remarks-yaml.ll @@ -22,9 +22,9 @@ ; YAML-NEXT: Hotness: 30 ; YAML-NEXT: Args: ; YAML-NEXT: - Callee: foo -; YAML-NEXT: - String: will not be inlined into +; YAML-NEXT: - String: ' will not be inlined into ' ; YAML-NEXT: - Caller: baz -; YAML-NEXT: - String: because its definition is unavailable +; YAML-NEXT: - String: ' because its definition is unavailable' ; YAML-NEXT: ... ; YAML-NEXT: --- !Missed ; YAML-NEXT: Pass: inline @@ -34,9 +34,9 @@ ; YAML-NEXT: Hotness: 30 ; YAML-NEXT: Args: ; YAML-NEXT: - Callee: bar -; YAML-NEXT: - String: will not be inlined into +; YAML-NEXT: - String: ' will not be inlined into ' ; YAML-NEXT: - Caller: baz -; YAML-NEXT: - String: because its definition is unavailable +; YAML-NEXT: - String: ' because its definition is unavailable' ; YAML-NEXT: ... ; ModuleID = '/tmp/s.c' -- 2.7.4