[LLVMdev] How do I update Ocaml debug info? (was Re: [llvm] r218914 - DI: Fold constant arguments into a single MDString)
Peter Zotov
whitequark at whitequark.org
Thu Oct 2 16:17:26 PDT 2014
On 2014-10-03 03:16, Duncan P. N. Exon Smith wrote:
> +whitequark
>
>> On Oct 2, 2014, at 3:48 PM, Duncan P. N. Exon Smith
>> <dexonsmith at apple.com> wrote:
>>
>> -llvm-commits, +llvmdev
>>
>>> On Oct 2, 2014, at 2:57 PM, Duncan P. N. Exon Smith
>>> <dexonsmith at apple.com> wrote:
>>>
>>> Author: dexonsmith
>>> Date: Thu Oct 2 16:56:57 2014
>>> New Revision: 218914
>>>
>>> URL: http://llvm.org/viewvc/llvm-project?rev=218914&view=rev
>>> Log:
>>> DI: Fold constant arguments into a single MDString
>>>
>>> This patch addresses the first stage of PR17891 by folding constant
>>> arguments together into a single MDString. Integers are stringified
>>> and
>>> a `\0` character is used as a separator.
>>>
>>> Part of PR17891.
>>>
>>> Note: I've attached my testcases upgrade scripts to the PR. If I've
>>> just broken your out-of-tree testcases, they might help.
>>>
>>
>> Among other things, this commit broke the Ocaml debug info test [1].
>> It's not obvious to me how to fix it (I don't speak Ocaml). Anyone
>> know
>> what to do? (Is it reasonable for me to just XFAIL it, file a PR, and
>> move on?)
>>
>> [1]: http://lab.llvm.org:8011/builders/llvm-hexagon-elf/builds/11579
>
> I have a guess (patch below), which I'll roll into my next attempt once
> I've sorted out the other buildbot failures. Note that r218914 had the
> first hunk, but missed the second.
>
> In the meantime, if anyone that speaks Ocaml can take a look, I'd
> appreciate it.
LGTM.
>
> diff --git a/test/Bindings/Ocaml/vmcore.ml
> b/test/Bindings/Ocaml/vmcore.ml
> index ea91294..da09cc7 100644
> --- a/test/Bindings/Ocaml/vmcore.ml
> +++ b/test/Bindings/Ocaml/vmcore.ml
> @@ -1358,7 +1358,7 @@ let test_builder () =
> (* End-of-file checks for things like metdata and attributes.
> * CHECK: attributes #0 = {{.*}}uwtable{{.*}}
> * CHECK: !llvm.module.flags = !{!0}
> - * CHECK: !0 = metadata !{i32 1, metadata !"Debug Info Version", i32
> 1}
> + * CHECK: !0 = metadata !{i32 1, metadata !"Debug Info Version", i32
> 2}
> * CHECK: !1 = metadata !{i32 1, metadata !"metadata test"}
> * CHECK: !2 = metadata !{i32 2, i32 3, metadata !3, metadata !3}
> *)
> @@ -1070,7 +1070,8 @@ let test_builder () =
> (* !llvm.module.flags is emitted at EOF. *)
> let n1 = const_int i32_type 1 in
> let n2 = mdstring context "Debug Info Version" in
> - let md = mdnode context [| n1; n2; n1 |] in
> + let n3 = const_int i32_type 2 in
> + let md = mdnode context [| n1; n2; n3 |] in
> add_named_metadata_operand m "llvm.module.flags" md;
>
> insist ((get_named_metadata m "llvm.module.flags") = [| md |])
--
Peter Zotov
More information about the llvm-dev
mailing list