[LLVMdev] How do I update Ocaml debug info? (was Re: [llvm] r218914 - DI: Fold constant arguments into a single MDString)

Duncan P. N. Exon Smith dexonsmith at apple.com
Thu Oct 2 16:16:03 PDT 2014


+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.

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 |])

-------------- next part --------------
A non-text attachment was scrubbed...
Name: vmcore.ml.patch
Type: application/octet-stream
Size: 1098 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141002/5eee9426/attachment.obj>


More information about the llvm-dev mailing list