From: Adam Nemet Date: Tue, 4 Oct 2016 17:05:04 +0000 (+0000) Subject: Serialize remark argument as a mapping to get proper quotation for the value. X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=00898051e54d4472a629e6ba2227543406e61ce2;p=llvm Serialize remark argument as a mapping to get proper quotation for the value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283231 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Analysis/OptimizationDiagnosticInfo.cpp b/lib/Analysis/OptimizationDiagnosticInfo.cpp index bfb19762077..d4359a88870 100644 --- a/lib/Analysis/OptimizationDiagnosticInfo.cpp +++ b/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/test/Transforms/Inline/optimization-remarks-passed-yaml.ll b/test/Transforms/Inline/optimization-remarks-passed-yaml.ll index dff73430b12..60d07587fdf 100644 --- a/test/Transforms/Inline/optimization-remarks-passed-yaml.ll +++ b/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/test/Transforms/Inline/optimization-remarks-yaml.ll b/test/Transforms/Inline/optimization-remarks-yaml.ll index 1ba2e0a2694..b3ee9faa108 100644 --- a/test/Transforms/Inline/optimization-remarks-yaml.ll +++ b/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'